創(chuàng)建一個元組是將不同的逗號分隔值。也可以選擇把這些逗號分隔值也括號內(nèi)。例如 -
tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d"
tup1 = ();
為了編寫含有一個單一的值,必須包含逗號,即使只有一個值的元組 ?
tup1 = (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]
元組是不可變的,這意味著我們不可以更新或更改元組元素的值。如下面的例子說明了可以把現(xiàn)有的元組創(chuàng)建新的元組的部分 -
#!/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')
移除個元組的別元素是不可能的。還有就是,當(dāng)然無可厚非組建另一元組來排放的不需要的元素。
#!/usr/bin/python3
tup = ('physics', 'chemistry', 1997, 2000);
print (tup)
del tup;
print "After deleting tup : "
print tup
這將產(chǎn)生以下結(jié)果。注意引發(fā)異常,這是因為經(jīng)過 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
元組響應(yīng) + 和 * 操作就像字符串; 它們意味著串聯(lián)和重復(fù)這里也一樣,所不同的是,結(jié)果是一個新的元組,而不是字符串。
| Python表達式 | 結(jié)果 | 描述 |
|---|---|---|
| len((1, 2, 3)) | 3 | 長度 |
| (1, 2, 3) + (4, 5, 6) | (1, 2, 3, 4, 5, 6) |
拼接
|
| ('Hi!',) * 4 | ('Hi!', 'Hi!', 'Hi!', 'Hi!') | 重復(fù) |
| 3 in (1, 2, 3) | True | 成員關(guān)系 |
| for x in (1,2,3) : print (x, end=' ') | 1 2 3 |
迭代
|
由于元組是序列,索引和切片的工作方式與字符串所做的操作相同。假設(shè)以下的輸入 -
T=('C++', 'Java', 'Python')
| Python表達式 | 結(jié)果 | 描述 |
|---|---|---|
| T[2] | 'Python' |
偏移從零開始
|
| T[-2] | 'Java' |
負值:從右邊計數(shù)
|
| T[1:] | ('Java', 'Python') |
切片取部分
|
任何一組多個對象,以逗號分隔,不寫符號標(biāo)識,即 對列表使用括號,元組使用小括號等,默認(rèn)為元組,簡短示例說明如下-
Python包括以下元組函數(shù) -
| SN |
函數(shù)與描述
|
|---|---|
| 1 |
比較兩個元組的元素
|
| 2 |
計算元組的總長度
|
| 3 |
從元組中返回項目的最大值
|
| 4 |
從元組中返回項目的最小值 |
| 5 |
轉(zhuǎn)換列表到元組
|