python中的多个赋值

Jer*_*mie 26 python

我在这里需要一个明确的解释.为什么以下代码有效?

foo1 = foo1[0] = [0]
Run Code Online (Sandbox Code Playgroud)

好的,我知道作业是从左到右完成的.

python如何理解foo1列表?

顺便说一句,我知道它foo1最终是[[...]]它的第一个元素.

Edu*_*ard 29

因为

foo1 = foo1[0] = [0]
Run Code Online (Sandbox Code Playgroud)

相当于

temp = [0]
foo1 = temp 
foo1[0] = temp 
Run Code Online (Sandbox Code Playgroud)

它首先评估表达式然后从左到右分配.逐行分析,你会得到正在发生的事情: - 首先创建一个列表temp - 然后temp分配列表foo1使其成为一个列表(回答你的实际问题) - 第三行只是将第一个元素赋值给列表本身(因此[[...]]在输出中)

更新2:根据@blhsing评论更改相关问题进行更相关的讨论:一行中的Python多个赋值语句