众所周知,对于Python,我们可以轻松地在一行中分配多个变量。但是在这里我遇到一个奇怪的情况。假设我们有一个列表:
x = [1, 2, 3, 4]
然后,我们做
x[0], x[x[0]] = 2, 1
最后,我们会得到
x = [2, 2, 3, 4]
代替
x = [2, 1, 3, 4]
有人可以解释这里出了什么问题吗? python如何在一行中实现多变量分配?
谢谢。
答案 0 :(得分:1)
结果列表不是[2, 2, 3, 4]
,而是[2, 2, 1, 4]
。给x[0]
赋值2
,然后x[x[0]]
变成x[2]
并赋值1
答案 1 :(得分:0)
这里发生的是,python首先执行您的第一条指令。 x[0]= 2
因此,在第一次执行后,x=[2,2,3,4]
然后执行第二个。因此它会更改x[2]
第二次执行后,x=[2,2,1,4]
并将结果显示为[2, 2, 1, 4]