元組通常用在使語句或者用戶定義的函數(shù)能夠安全的采用一組值的時候敦锌,即被
使用的元祖的值不會改變盒发。元組也是一個序列。一個元組由數(shù)個逗號分隔的值組成蒋得,
#例如:
>>> t = 12345, 54321, 'hello!'
>>> t[0]
12345
>>> t
(12345, 54321, 'hello!')
>>>u = t, (1, 2, 3, 4, 5) # 元組可以嵌套
>>> u
((12345, 54321, 'hello!'), (1, 2, 3, 4, 5))
tuple 函數(shù):以一個序列作為參數(shù)并把它轉(zhuǎn)換為元組。
>>> tuple([1,2,3])
(1, 2, 3)
>>> tuple('abs')
('a', 'b', 's')
>>> tuple((1,2,3))
(1, 2, 3)
元組在輸出時總是有括號的乒疏,以便于正確表達(dá)嵌套結(jié)構(gòu)额衙。在輸入時可以沒有括
號,不過經(jīng)常括號都是必須的(如果元組是一個更大的表達(dá)式的一部分)怕吴。元組就像
字符串窍侧,不可改變:不能給元組的一個獨立的元素賦值(盡管你可以通過聯(lián)接和切
割來模擬)。還可以創(chuàng)建包含可變對象的元組转绷,例如列表伟件。
一個特殊的問題是構(gòu)造包含零個或一個元素的元組:為了適應(yīng)這種情況,語法
上有一些額外的改變议经。一對空的括號可以創(chuàng)建空元組斧账;要創(chuàng)建一個單元素元組可以
在值后面跟一個逗號(在括號中放入一個單值不夠明確)谴返,丑陋,但是有效咧织。例如:
>>> empty = ()
>>> singleton = 'hello',
>>> singleton
('hello',)
語句 t = 12345, 54321, 'hello!'是元組封裝(tuple packing)的一個例子:值
12345嗓袱,54321 和'hello!'被封裝進(jìn)元組。其逆操作可能是這樣:
x, y, z = t
這個調(diào)用等號右邊可以是任何線性序列习绢,稱之為“序列拆封”非常恰當(dāng)渠抹。“序列
拆封”要求左側(cè)的變量數(shù)目與序列的元素個數(shù)相同毯炮。要注意的是可變參數(shù)(multiple
assignment)其實只是元組封裝和序列拆封的一個結(jié)合逼肯。