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

了解 Python 多重赋值

了解 Python 多重赋值

繁华开满天机 2022-06-14 16:20:45
考虑这个赋值语句示例:>>> x, y = x[y] = {}, None>>> x{None: ({...}, None)}>>> y>>>分配的价值是什么x?这个分配是如何工作的?
查看完整描述

1 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

该语句将最右侧的值分配给其左侧的每个目标,从左侧开始。因此,它相当于


t = {}, None

x, y = t

x[y] = t

所以,t开始是一个由空dict和值组成的元组None。


接下来,我们解包t并将每个部分分配给xand y:x绑定到 empty dict,并且y绑定到None。


最后,我们也可以将元组分配给x[y]as,因为我们刚刚定义了x和y。键None被添加到被dict引用的x对象中,它的值是原始元组。因此,我们x[y]对自身进行了引用x:一个循环!


Python 可以检测到这个循环,所以它显示dict为{...},而不是试图将其无限扩展为{None: ({None: ({None: ...。


查看完整回答
反对 回复 2022-06-14
  • 1 回答
  • 0 关注
  • 144 浏览
慕课专栏
更多

添加回答

举报

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