python - python中的多个赋值
问题描述
我在这里需要一个清楚的解释。为什么以下代码有效?
foo1 = foo1[0] = [0]
好的,我知道作业是从左到右完成的。
python如何理解foo1
是一个列表?
顺便说一句,我知道foo1
它[[...]]
的第一个元素就是它本身。
解决方案
因为
foo1 = foo1[0] = [0]
相当于
temp = [0]
foo1 = temp
foo1[0] = temp
它首先计算表达式,然后从左到右赋值。逐行分析这一行,您将了解发生了什么:-首先创建一个列表temp
-然后temp
分配列表以foo1
使其成为列表(回答您的实际问题)-第三行只是将第一个元素分配给列表本身(因此 [[...]] 在输出中)
更新 2:根据@blhsing 评论将相关问题更改为更相关的讨论:Python Multiple Assignment Statements In One Line