W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
現(xiàn)在有一個(gè)包含N個(gè)元素的元組或者是序列,怎樣將它里面的值解壓后同時(shí)賦值給N個(gè)變量?
任何的序列(或者是可迭代對(duì)象)可以通過(guò)一個(gè)簡(jiǎn)單的賦值語(yǔ)句解壓并賦值給多個(gè)變量。唯一的前提就是變量的數(shù)量必須跟序列元素的數(shù)量是一樣的。
代碼示例:
>>> p = (4, 5)
>>> x, y = p
>>> x
4
>>> y
5
>>>
>>> data = [ 'ACME', 50, 91.1, (2012, 12, 21) ]
>>> name, shares, price, date = data
>>> name
'ACME'
>>> date
(2012, 12, 21)
>>> name, shares, price, (year, mon, day) = data
>>> name
'ACME'
>>> year
2012
>>> mon
12
>>> day
21
>>>
如果變量個(gè)數(shù)和序列元素的個(gè)數(shù)不匹配,會(huì)產(chǎn)生一個(gè)異常。
代碼示例:
>>> p = (4, 5)
>>> x, y, z = p
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: need more than 2 values to unpack
>>>
討論 實(shí)際上,這種解壓賦值可以用在任何可迭代對(duì)象上面,而不僅僅是列表或者元組。 包括字符串,文件對(duì)象,迭代器和生成器。 代碼示例:
>>> s = 'Hello'
>>> a, b, c, d, e = s
>>> a
'H'
>>> b
'e'
>>> e
'o'
>>>
有時(shí)候,你可能只想解壓一部分,丟棄其他的值。對(duì)于這種情況Python并沒(méi)有提供特殊的語(yǔ)法。但是你可以使用任意變量名去占位,到時(shí)候丟掉這些變量就行了。
代碼示例:
>>> data = [ 'ACME', 50, 91.1, (2012, 12, 21) ]
>>> _, shares, price, _ = data
>>> shares
50
>>> price
91.1
>>>
你必須保證你選用的那些占位變量名在其他地方?jīng)]被使用到。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: