Python3元組
元組是不可變的Python對象的序列。元組序列就像列表。元組和列表之間的區別是,元組不像列表那樣不能被改變以及元組使用圓括號,而列表使用方括號。
創建一個元組是將不同的逗號分隔值。也可以選擇把這些逗號分隔值也括號內。例如 -
tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d"
空元組寫成不含任何值的兩個空括號 -
tup1 = ();
爲了編寫含有一個單一的值,必須包含逗號,即使只有一個值的元組 −
tup1 = (50,)
類字符串索引,元組索引從0開始,並且它們可以被切片,聯接等等。
訪問元組的組:
要訪問值元組,用方括號帶索引或索引切片來獲得可用的索引值。例如 -
#!/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]
更新元組
元組是不可變的,這意味着我們不可以更新或更改元組元素的值。如下面的例子說明了可以把現有的元組創建新的元組的部分 -
#!/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')
刪除元組元素
移除個元組的別元素是不可能的。還有就是,當然無可厚非組建另一元組來排放的不需要的元素。
如要明確刪除整個元組,只需要用 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
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, end=' ')
1 2 3
迭代
索引,切片和矩陣
由於元組是序列,索引和切片的工作方式與字符串所做的操作相同。假設以下的輸入 -
T=('C++', 'Java', 'Python')
Python表達式
結果
描述
T[2]
'Python'
偏移從零開始
T[-2]
'Java'
負值:從右邊計數
T[1:]
('Java', 'Python')
切片取部分
無封裝元素
任何一組多個對象,以逗號分隔,不寫符號標識,即 對列表使用括號,元組使用小括號等,默認爲元組,簡短示例說明如下-
內置元組函數
Python包括以下元組函數 -
SN
函數與描述
1
cmp(tuple1, tuple2)
比較兩個元組的元素
2
len(tuple)
計算元組的總長度
3
max(tuple)
從元組中返回項目的 最大值
4
min(tuple)
從元組中返回項目的最小值
5
tuple(seq)
轉換列表到元組