为了账号安全,请及时绑定邮箱和手机立即绑定

Python每日一练0001

标签:
Python
问题

我们有一个包含N个元素的元组或序列,现在想把它分解为N个单独的变量。

例如我们有一个序列[1, 2, 3],想把1, 2, 3分别赋值给a, b, c三个变量。

解决方案

只需要简单的赋值就可以了,唯一的要求是变量的数量和序列的数量必须要一致

例如:

>>> l = ['foo', 5, 'bar']
>>> a, b, c = l
>>> print(a, b, c)
foo 5 bar

>>> t = (1, 2, 3)
>>> a, b, c = t
>>> print(a, b, c)
1 2 3

但如果变量的整数和序列的数量不一致时,则会抛出ValueError异常

>>> l = [1, 2, 3]
>>> a, b = l
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 2)
讨论

实际上,任何可迭代的对象(元组、序列、集合、迭代器等等)都可以这样来分解

def foo():
    for i in range(3):
        yield i

a, b, c = foo()
print(a, b, c)
来源

《Python Cookbook》

关注

欢迎关注我的微信公众号:python每日一练

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消