Python - 元組



元組是 Python 中的內建資料型別之一。Python 元組是由逗號分隔的專案序列,用圓括號 () 括起來。Python 元組中的專案不需要具有相同的資料型別。

以下是一些 Python 元組的示例:

tup1 = ("Rohan", "Physics", 21, 69.75)
tup2 = (1, 2, 3, 4, 5)
tup3 = ("a", "b", "c", "d")
tup4 = (25.50, True, -55, 1+2j)

空元組寫成兩個不包含任何內容的圓括號:

tup1 = ();

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

tup1 = (50,);

需要注意以下幾點:

  • 在 Python 中,元組是一種序列資料型別。它是專案的排序集合。元組中的每個專案都有一個唯一的索引位置,從 0 開始。
  • 在 C/C++/Java 陣列中,陣列元素必須具有相同的型別。另一方面,Python 元組可以具有不同資料型別的物件。
  • Python 元組和列表都是序列。兩者之間的一個主要區別是,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]

更新元組

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

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語句。例如:

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 元組運算

在 Python 中,元組是一個序列。因此,我們可以使用 + 運算子連線兩個元組,並使用 * 運算子連線元組的多個副本。成員運算子“in”和“not in”適用於元組物件。

Python 表示式 結果 描述
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 連線
('Hi!',) * 4 ('Hi!', 'Hi!', 'Hi!', 'Hi!') 重複
3 in (1, 2, 3) True 成員資格
即使元組中只有一個物件,也必須在其後新增逗號。否則,它將被視為字串。

索引、切片和矩陣

因為元組是序列,所以索引和切片對元組的作用方式與對字串的作用方式相同。假設以下輸入:

L = ('spam', 'Spam', 'SPAM!')
Python 表示式 結果 描述
L[2] 'SPAM!' 偏移量從零開始
L[-2]

‘垃圾郵件’ 負數:從右邊開始計數
L[1:] ['Spam', 'SPAM!'] 切片獲取部分內容

無封閉分隔符

任何一組多個物件,用逗號分隔,書寫時不使用識別符號,例如列表的方括號、元組的圓括號等,預設為元組,如以下簡短示例所示:

print ('abc', -4.24e93, 18+6.6j, 'xyz');
x, y = 1, 2;
print ("Value of x , y : ", x,y);

執行上述程式碼時,會產生以下結果:

abc -4.24e+93 (18+6.6j) xyz
Value of x , y : 1 2

元組的內建函式

以下是我們可以與元組一起使用的內建函式:

序號 函式及描述
1 cmp(tuple1, tuple2)

比較兩個元組的元素。

2 len(tuple)

給出元組的總長度。

3 max(tuple)

返回元組中具有最大值的項。

4 min(tuple)

返回元組中具有最小值的項。

5 tuple(seq)

將列表轉換為元組。

廣告