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)
將列表轉換爲元組。