Python元組


元組是一系列不可變的Python物件。元組是一種序列,就像列表一樣。元組和列表之間的主要區別是元組不能像列表那樣改變元素的值,可以簡單地理解為「唯讀列表」。 元組使用小括號 - (),而列表使用方括號 - []

建立一個元組只需使用逗號分隔值放入小括號的一個序列。 或者,也可以將這些逗號分隔值放在括號之間。 例如 -

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

空的元組寫成兩個不含任何東西的小括號 -

tup1 = ();

要編寫一個包含單個值的元組,必須包含一個逗號,即使只有一個值(這是規範寫法) -

tup1 = (50,)
## 也可以這樣寫
tup2 = (50)

1.存取元組中的值

要存取元組中的值,請使用方括號進行指定索引切片或索引,以獲取該索引處的值。 例如 -

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

2.更新元組

元組是不可變的,這意味著我們無法更新或更改元組元素的值。 但是可以使用現有元組的一部分來建立新的元組,如下例所示:

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

3.刪除元組元素

刪除單個元組元素是不可能的。 當然,將不必要的元素放在另一個元組中也沒有什麼錯。

要顯式刪除整個元組,只需使用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

4.基本元組操作

元組響應+*運算子很像字串; 它們執行連線和重複操作,但結果是一個新的元組,而不是一個字串。

事實上,元組中類似字串操作和使用的所有常規序列操作都有作了講解。

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 疊代

5.索引,切片和矩陣

由於元組是序列,索引和切片的工作方式與列表的工作方式相同,假設輸入以下值:

T=('C++', 'Java', 'Python')

那麼 -

Python表示式 結果
T[2] 'Python' 偏移量,從零開始
T[-2] 'Java' 負數:從右到左
T[1:] ('Java', 'Python') 切片提取部分

6.內建元組函式功能

Python包括以下元組函式 -

編號 函式 描述
1 cmp(tuple1, tuple2) 比較兩個元組的元素。
2 len(tuple) 給出元組的總長度。
3 max(tuple) 從元組返回最大值項。
4 min(tuple) 從元組返回最大值項
5 tuple(seq) 將列表轉換為元組。