Python 的元組與清單類似,不同之處在于元組的元素不能修改。
元組使用小括号 ( ),清單使用方括号 [ ]。
元組建立很簡單,隻需要在括号中添加元素,并使用逗号隔開即可。

>>> tup1 = ('Google', 'Runoob', 1997, 2000)
>>> tup2 = (1, 2, 3, 4, 5 )
>>> tup3 = "a", "b", "c", "d" # 不需要括号也可以
>>> type(tup3)
<class 'tuple'>
建立空元組
元組中隻包含一個元素時,需要在元素後面添加逗号 , ,否則括号會被當作運算符使用:
>>> tup1 = (50)
>>> type(tup1) # 不加逗号,類型為整型
<class 'int'>
>>> tup1 = (50,)
>>> type(tup1) # 加上逗号,類型為元組
元組與字元串類似,下标索引從 0 開始,可以進行截取,組合等。
元組可以使用下标索引來通路元組中的值,如下執行個體:
#!/usr/bin/python3
tup1 = ('Google', 'Runoob', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7 )
print ("tup1[0]: ", tup1[0])
print ("tup2[1:5]: ", tup2[1:5])
以上執行個體輸出結果:
元組中的元素值是不允許修改的,但我們可以對元組進行連接配接組合,如下執行個體:
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# 以下修改元組元素操作是非法的。
# tup1[0] = 100
# 建立一個新的元組
tup3 = tup1 + tup2
print (tup3)
元組中的元素值是不允許删除的,但我們可以使用del語句來删除整個元組,如下執行個體:
tup = ('Google', 'Runoob', 1997, 2000)
print (tup)
del tup
print ("删除後的元組 tup : ")
以上執行個體元組被删除後,輸出變量會有異常資訊,輸出如下所示:
與字元串一樣,元組之間可以使用 + 号和 * 号進行運算。這就意味着他們可以組合和複制,運算後會生成一個新的元組。
Python 表達式
結果
描述
len((1, 2, 3))
3
計算元素個數
(1, 2, 3) + (4, 5, 6)
(1, 2, 3, 4, 5, 6)
連接配接
('Hi!',) * 4
('Hi!', 'Hi!', 'Hi!', 'Hi!')
複制
3 in (1, 2, 3)
True
元素是否存在
for x in (1, 2, 3): print (x,)
1 2 3
疊代
因為元組也是一個序列,是以我們可以通路元組中的指定位置的元素,也可以截取索引中的一段元素,如下所示:
元組:
tup[1]
'Runoob'
讀取第二個元素
tup[-2]
'Weibo'
反向讀取,讀取倒數第二個元素
tup[1:]
('Runoob', 'Taobao', 'Wiki', 'Weibo', 'Weixin')
截取元素,從第二個開始後的所有元素。
tup[1:4]
('Runoob', 'Taobao', 'Wiki')
截取元素,從第二個開始到第四個元素(索引為 3)。
運作執行個體如下:
>>> tup = ('Google', 'Runoob', 'Taobao', 'Wiki', 'Weibo','Weixin')
>>> tup[1]
>>> tup[-2]
>>> tup[1:]
>>> tup[1:4]
>>>
Python元組包含了以下内置函數
序号
方法及描述
執行個體
1
len(tuple)
計算元組元素個數。
2
max(tuple)
傳回元組中元素最大值。
min(tuple)
傳回元組中元素最小值。
4
tuple(iterable)
将可疊代系列轉換為元組。
所謂元組的不可變指的是元組所指向的記憶體中的内容不可變。
>>> tup = ('r', 'u', 'n', 'o', 'o', 'b')
>>> tup[0] = 'g' # 不支援修改元素
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> id(tup) # 檢視記憶體位址
4440687904
>>> tup = (1,2,3)
>>> id(tup)
4441088800 # 記憶體位址不一樣了
從以上執行個體可以看出,重新指派的元組 tup,綁定到新的對象了,不是修改了原來的對象。