元組是一系列不可變的Python物件。元組是一種序列,就像列表一樣。元組和列表之間的主要區別是元組不能像列表那樣改變元素的值,可以簡單地理解為「唯讀列表」。 元組使用小括號 - ()
,而列表使用方括號 - []
。
建立一個元組只需使用逗號分隔值放入小括號的一個序列。 或者,也可以將這些逗號分隔值放在括號之間。 例如 -
tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d"
空的元組寫成兩個不含任何東西的小括號 -
tup1 = ();
要編寫一個包含單個值的元組,必須包含一個逗號,即使只有一個值(這是規範寫法) -
tup1 = (50,)
## 也可以這樣寫
tup2 = (50)
要存取元組中的值,請使用方括號進行指定索引切片或索引,以獲取該索引處的值。 例如 -
#!/usr/bin/python3
tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7 )
print ("tup1[0]: ", tup1[0])
print ("tup2[1:5]: ", tup2[1:5])
當執行上述程式碼時,會產生以下結果 -
tup1[0]: physics
tup2[1:5]: (2, 3, 4, 5)
元組是不可變的,這意味著我們無法更新或更改元組元素的值。 但是可以使用現有元組的一部分來建立新的元組,如下例所示:
#!/usr/bin/python3
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# Following action is not valid for tuples
# tup1[0] = 100;
# So let's create a new tuple as follows
tup3 = tup1 + tup2
print (tup3)
當執行上述程式碼時,會產生以下結果 -
(12, 34.56, 'abc', 'xyz')
刪除單個元組元素是不可能的。 當然,將不必要的元素放在另一個元組中也沒有什麼錯。
要顯式刪除整個元組,只需使用del
語句。 例如 -
#!/usr/bin/python3
tup = ('physics', 'chemistry', 1997, 2000);
print (tup)
del tup;
print "After deleting tup : "
print (tup)
執行上面程式碼,將產生以下結果 -
註 - 引發異常。這是因為在
del tup
之後,元組不再存在。
('physics', 'chemistry', 1997, 2000)
After deleting tup :
Traceback (most recent call last):
File "test.py", line 9, in <module>
print tup;
NameError: name 'tup' is not defined
元組響應+
和*
運算子很像字串; 它們執行連線和重複操作,但結果是一個新的元組,而不是一個字串。
事實上,元組中類似字串操作和使用的所有常規序列操作都有作了講解。
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, end = ' ') |
1 2 3 |
疊代 |
由於元組是序列,索引和切片的工作方式與列表的工作方式相同,假設輸入以下值:
T=('C++', 'Java', 'Python')
那麼 -
Python表示式 | 結果 | |
---|---|---|
T[2] |
'Python' |
偏移量,從零開始 |
T[-2] |
'Java' |
負數:從右到左 |
T[1:] |
('Java', 'Python') |
切片提取部分 |
Python包括以下元組函式 -
編號 | 函式 | 描述 |
---|---|---|
1 | cmp(tuple1, tuple2) | 比較兩個元組的元素。 |
2 | len(tuple) | 給出元組的總長度。 |
3 | max(tuple) | 從元組返回最大值項。 |
4 | min(tuple) | 從元組返回最大值項 |
5 | tuple(seq) | 將列表轉換為元組。 |