如果有一个包含 N 个元素的元组或者是序列,怎样将它里面的值解压后同时赋值

给 N 个变量?


任何的序列 (或者是可迭代对象) 可以通过一个简单的赋值语句解压并赋值给多个

变量。唯一的前提就是变量的数量必须跟序列元素的数量是一样的。


>>> 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


如果变量个数和序列元素的个数不匹配,会产生一个异常。

代码示例:

>>> 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

>>>