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

Python 中这种类型的变量赋值是什么?

Python 中这种类型的变量赋值是什么?

呼啦一阵风 2021-12-29 19:24:56
我在 Python 中多次看到这种语法,但从来不知道它的真正含义下面是一个例子:foo, bar = baz有人可以向我解释一下吗?
查看完整描述

3 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

它在一个迭代中解包多个项目。例如


foo, bar = ['thing1', 'thing2']

print(foo)

print(bar)

会输出


thing1

thing2

所以如果我们说:


packed_items = ['thing1', 'thing2']

foo, bar = packed_items

print(foo)

print(bar)

我们会得到同样的结果。


另一个需要了解的重要语法是*运算符。


它可用于在打开包装时抓取任意数量的物品并将它们放入列表中。


例如:


packed_items = ['thing1', 'thing2', 'thing3', 'thing4', 'thing5']

foo, *middle, bar = packed_items

print(foo, middle, bar)

产量 thing1 ['thing2', 'thing3', 'thing4'] thing5


然而


foo, middle, *bar = packed_items

print(foo, middle, bar)

会屈服 thing1 thing2 ['thing3', 'thing4', 'thing5']


最后,注意*操作符可以返回一个空列表


packed_items = ['thing1', 'thing2']

foo, middle, *bar = packed_items

print(foo, middle, bar)

产生thing1 thing2 []而不是因为没有足够的参数来解包而给你一个错误。


查看完整回答
反对 回复 2021-12-29
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

它用于将一个可迭代变量拆分为多个变量。所以如果 baz = [1, 2], foo = 1 and bar = 2. 称为'解构'。


查看完整回答
反对 回复 2021-12-29
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

一张图片胜过千言万语


//img1.sycdn.imooc.com//61cc45af00014bea03390306.jpg

查看完整回答
反对 回复 2021-12-29
  • 3 回答
  • 0 关注
  • 156 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信