何謂元組

元組(tuple)簡單的來說就是由多個元素所組成的群組,元組的成員可以由不同型別的資料型別來組成。元組宣告後就不可以更改,其序列是固定的;讀取元組內含的元素時,使用的註標即建立時的順序。元組與之前介紹的串列結構相同,只是元素個數及元素值都不能改變,所以希望能保護資料時,就可採用元組。

元組的宣告

元組的宣告是以 「,」 逗號,區隔各個元素。語法如下:

# 方法 1
元組 = 元素A, 元素B, 元素C, …
# 方法 2
元組 = (元素A, 元素B, 元素C, …)
  1. 宣告空元組時一定要使用小括號。

    tuple1 =     #錯誤宣告  
    tuple2 = ()  #宣告空元組
  2. 宣告只有一個元素的元組,需要在元素之後加上逗號。

    # 不加逗號「也 OK」,通常是因為寫成 x = (25) 時程式不會報錯,但此時它的型態已經變成一般的整數(int),而不是元組(tuple)。
    # 在 Python 中,真正決定一個物件是不是元組的,是「逗號 ','」,而不是「括號 ()」
    tuple1 = 25,  
    tuple2 = (25,)
    tuple3 = (25)
    tuple4 = 25
    print(type(tuple1))  # <class 'tuple'>
    print(type(tuple2))  # <class 'tuple'>
    print(type(tuple3))  # <class 'int'>
    print(type(tuple4))  # <class 'int'>

元組常用的函式

下表為元組常用的函式,可用來進行比較元素、元組轉換串列、傳回元組中最大值或最小值…等相關元組的進階操作。

函式說明與範例
sum()功能:傳回元組內所有元素的總和,num 值為指定參與計算的整數引數,若未指定則預設值為 0。
語法sum(tuple, [num])
簡例
t1 = (10, 20, 30)
print(sum(t1, 40)) 輸出結果 100
max()功能:傳回元組內元素最大者。
語法max(tuple)
簡例
t1 = (10, 20, 30)
print(max(t1)) 輸出結果 30
min()功能:傳回元組內元素最小者。
語法min(tuple)
簡例
t1 = (10, 20, 30)
print(min(t1)) 輸出結果 10
tuple()功能:將串列轉換成元組。
語法tuple(list)
簡例
list1 = [10, 20, 30]
print(tuple(list1)) 輸出結果 (10, 20, 30)
list()功能:將元組轉換成串列。
語法list(tuple)
簡例
tuple1 = (10, 20, 30)
print(list(tuple1)) 輸出結果 [10, 20, 30]
len()功能:回傳元組的元素個數。
語法len(tuple)
簡例
tuple1 = (10, 20, 30)
print(len(tuple1)) 輸出結果 3
count()功能:回傳元組中指定元素值的出現次數。
語法tuple.count(元素值)
簡例
tuple1 = (10, 20, 30)
print(tuple1.count(20)) 輸出結果 1
sorted()功能:將元組中元素遞增排序後回傳,回傳值為串列型別。
語法:排序後串列 = sorted(tuple)
簡例
tuple1 = (20, 10, 30)
print(sorted(tuple1)) 輸出結果 [10, 20, 30]

元組基本操作

元組在程式中可以進行簡單的操作,以下用實例配合說明,來瞭解元組的基本操作。

[例] 元組基本操作。 (tuple_1.py)

[簡例] 請撰寫程式從二維元組中讀取購物清單,清單內的資料分別是品名、數量及單價。顯示清單上的資料並計算小計,最後計算總計。 (shop.py)

[結果]

品  名  數  量  單  價  小  計                                          
  香蕉      34      2      68                                       
  芭樂      28      3      84                                       
  水梨      50      2     100                                        
總  計:                   252 

相關主題與延伸閱讀