如果有一个包含 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
>>>
转载于:https://blog.51cto.com/1231520/2294248