Python 这个命名变量是如何工作的?

Python 这个命名变量是如何工作的?,python,Python,我是python的初学者,我发现了一种命名变量的奇怪方法,根本不懂 有人能帮我吗 x = 1 n = [1, 1, 3] for i in n: y, x = x, i 我想理解这一行,它是什么意思?它被称为元组解包。右边只是一个元组;表达式中的括号如(x,i)在没有歧义时是可选的。左侧是与右侧相应值关联的名称序列。这句话相当于 tmp = x, i y = tmp[0] x = tmp[1] 在赋值之前,右边完全作为元组计算,这意味着您可以编写如下代码 a, b = b, a 在

我是python的初学者,我发现了一种命名变量的奇怪方法,根本不懂

有人能帮我吗

x = 1
n = [1, 1, 3]
for i in n:
    y, x = x, i

我想理解这一行,它是什么意思?

它被称为元组解包。右边只是一个元组;表达式中的括号如
(x,i)
在没有歧义时是可选的。左侧是与右侧相应值关联的名称序列。这句话相当于

tmp = x, i
y = tmp[0]
x = tmp[1]
在赋值之前,右边完全作为元组计算,这意味着您可以编写如下代码

a, b = b, a

在不需要临时变量的情况下交换值。

我的意思是y被定义为x,然后x被定义为I,所以在同一个循环中,x将是与I相同的值?没错。我已经更新了等价物,以强调首先创建元组的想法。谢谢,但是如果x=1在I in n之后在循环中:这有什么不同吗?你会得到相同的答案,但是x在每次迭代中都被(不必要地)重新定义。