python 一些声明多变量的情况让我很困惑

python some case of declaring muti-variable confused me

这是代码1:

x = [0, 1]
i = 0
j=0
i,x[i]=1,2
#print i,x
#1,[0,2]

这是代码2:

x=0
y=1
x,y=3,x
#print x,y
#3,0

我知道python是在有多个变量需要赋值的时候同时赋值

但是为什么code1的结果是1,[0,2]?不应该是1,[2,1]--不是同一时间吗?

我的意思是赋值 x[i],变量 "i" 应该是 0,因为 "that time" 变量 "i" 是 0,所以它应该是 i,x[0]=1,2。但事实并非如此。 :(

你的理解有点不对,Python并不是同时给变量赋值,只是在赋值开始前先对右手边求完整,然后才对左手边赋值侧开始,左侧的赋值在内部仍然是顺序的,所以在第一种情况下,我的值​​在 'x[i]' 中再次使用之前被更改。

首先出现差异是因为您正在更改和使用左侧的 'I' 值。