元組是一系列不可變的Python對(duì)象。 元組是一種序列,就像列表一樣。 元組和列表的區(qū)別在于,不同于列表和元組使用中括號(hào) - (),而列表使用方括號(hào) - [],并且元組不能改變。
創(chuàng)建一個(gè)元組與放置不同的逗號(hào)分隔值一樣簡單。 也可以將這些以逗號(hào)分隔的值放在圓括號(hào)之間。 例如 -
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";
空元組是兩個(gè)不包含任何內(nèi)容的圓括號(hào),如下 -
tup1 = ();
要寫一個(gè)包含單個(gè)值的元組,即使只有一個(gè)值,也必須包含一個(gè)逗號(hào),
tup1 = (50,);
像字符串索引一樣,元組索引從0開始,并且它們可以被分片,連接等等。
要訪問元組中的值,可使用方括號(hào)將切片與索引一起使用,以獲取該索引處可用的值。 例如 -
#!/usr/bin/python
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]);
執(zhí)行上面示例代碼,得到以下結(jié)果 -
tup1[0]: physics
tup2[1:5]: [2, 3, 4, 5]
元組是不可變的,這意味著不能更新或改變?cè)M元素的值。但是可以將現(xiàn)有的元組的一部分來創(chuàng)建或重組成新的元組,如下例所示 -
#!/usr/bin/python
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);
當(dāng)執(zhí)行上面示例代碼,得到以下結(jié)果 -
(12, 34.56, 'abc', 'xyz')
刪除單個(gè)元組元素是不可能的。 當(dāng)然,將另一個(gè)元組與不需要的元素組合在一起成新的元組是沒有任何問題的。
要顯式刪除整個(gè)元組,只需使用del語句。 例如 -
#!/usr/bin/python
tup = ('physics', 'chemistry', 1997, 2000);
print (tup);
del tup;
print ("After deleting tup : ");
print (tup);
這會(huì)產(chǎn)生以下結(jié)果。 請(qǐng)注意引發(fā)的異常,這是因?yàn)樵?code>del tup語句之后,元組不再存在 -
('physics', 'chemistry', 1997, 2000)
After deleting tup :
Traceback (most recent call last):
File "F:\worksp\python\test.py", line 7, in <module>
print (tup);
NameError: name 'tup' is not defined
元組可像字符串一樣對(duì)+和*運(yùn)算符作出響應(yīng); 它們也意味著連接和重復(fù),但返回結(jié)果是一個(gè)新的元組,而不是一個(gè)字符串。
事實(shí)上,元組響應(yīng)類似字符串使用的所有常規(guī)序列操作 -
| Python表達(dá)式 | 結(jié)果 | 描述 |
|---|---|---|
len((1, 2, 3)) |
3 |
計(jì)算元組的長度 |
(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 |
成員操作符 |
for x in (1, 2, 3): print x, |
1 2 3 |
迭代 |