Python元組

元組是一系列不可變的Python對象。 元組是一種序列,就像列表一樣。 元組和列表的區別在於,不同於列表和元組使用中括號 - (),而列表使用方括號 - [],並且元組不能改變。

創建一個元組與放置不同的逗號分隔值一樣簡單。 也可以將這些以逗號分隔的值放在圓括號之間。 例如 -

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";

空元組是兩個不包含任何內容的圓括號,如下 -

tup1 = ();

要寫一個包含單個值的元組,即使只有一個值,也必須包含一個逗號,

tup1 = (50,);

像字符串索引一樣,元組索引從0開始,並且它們可以被分片,連接等等。

訪問元組中的值

要訪問元組中的值,可使用方括號將切片與索引一起使用,以獲取該索引處可用的值。 例如 -

#!/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]);

執行上面示例代碼,得到以下結果 -

tup1[0]:  physics
tup2[1:5]:  [2, 3, 4, 5]

更新元組

元組是不可變的,這意味着不能更新或改變元組元素的值。但是可以將現有的元組的一部分來創建或重組成新的元組,如下例所示 -

#!/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);

當執行上面示例代碼,得到以下結果 -

(12, 34.56, 'abc', 'xyz')

刪除元組元素

刪除單個元組元素是不可能的。 當然,將另一個元組與不需要的元素組合在一起成新的元組是沒有任何問題的。

要顯式刪除整個元組,只需使用del語句。 例如 -

#!/usr/bin/python

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 "F:\worksp\python\test.py", line 7, 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,

1 2 3

迭代