Python分配的奇怪效果?

时间:2018-11-22 05:21:25

标签: python syntax programming-languages

众所周知,对于Python,我们可以轻松地在一行中分配多个变量。但是在这里我遇到一个奇怪的情况。假设我们有一个列表:

x = [1, 2, 3, 4]

然后,我们做

x[0], x[x[0]] = 2, 1

最后,我们会得到

x = [2, 2, 3, 4]

代替

x = [2, 1, 3, 4]

有人可以解释这里出了什么问题吗? python如何在一行中实现多变量分配?

谢谢。

2 个答案:

答案 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]