300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 《Python Cookbook 3rd》笔记(1.1):拆分序列后赋值给多个变量

《Python Cookbook 3rd》笔记(1.1):拆分序列后赋值给多个变量

时间:2019-09-16 06:51:36

相关推荐

《Python Cookbook 3rd》笔记(1.1):拆分序列后赋值给多个变量

拆分序列后赋值给多个变量

问题

现有一个包含N个元素的元组或序列,如何将其值拆分后同时赋值给N个变量?

解法

任何序列 (或可迭代对象) 可通过一个简单赋值语句拆分并赋值给多个变量。唯一前提是变量数量必须与序列元素长度一致。

>>> p = (4, 5)>>> x, y = p>>> x4>>> y5

>>> data = [ 'ACME', 50, 91.1, (, 12, 21) ]>>> name, shares, price, date = data>>> name'ACME'>>> date(, 12, 21)

>>> name, shares, price, (year, mon, day) = data>>> name'ACME'>>> year>>> mon12>>> day21

若变量个数和序列长度不匹配,则抛异常。

>>> p = (4, 5)>>> x, y, z = pTraceback (most recent call last):File "<stdin>", line 1, in <module>ValueError: need more than 2 values to unpack

讨论

其实,该拆分赋值法可用于任一可迭代对象上,而不仅仅是列表或元组,还包括字符串,文件对象,迭代器和生成器。

>>> s = 'Hello'>>> a, b, c, d, e = s>>> a'H'>>> b'e'>>> e'o'

有时,你只想取其中一部分,丢弃其他。对此,Python没有提供特殊语法。但你可使用任意变量名去占位,到时弃之即可。

>>> data = [ 'ACME', 50, 91.1, (, 12, 21) ]>>> _, shares, price, _ = data>>> shares50>>> price91.1

你必须保证你选用的那些占位变量名在其他地方没被使用到。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。