Python 中的变量赋值顺序逗号分隔的多重赋值

variable assignment order in python comma-separated multiple assignment

提问人:fakeweeb69 提问时间:4/20/2023 最后编辑:wjandreafakeweeb69 更新时间:10/24/2023 访问量:55

问:

我很抱歉,因为这个问题之前已经问过了,但我并没有真正理解答案和评论,但我没有足够的声誉来评论这些线程......

在 Python 中更改变量顺序逗号分隔的多重赋值 [duplicate]

从本质上讲,我不明白当您在同一行中分配多个变量时,python 执行变量赋值的顺序是什么。

例如:

a, b, = [2,3,4,5], [1]
a[1:], a, b = b, a[1:], a
print("a = ", a)
print("b = ", b)

返回

a = [3, 4, 5]
b = [2, 1]

据我了解,python首先评估赋值语句的RHS,因此计算结果为. 但这没有意义,因为.b, a[1:], a1, [3,4,5], [2,3,4,5]b = [2,1]

此外,如果我这样做,它将返回a, b, a[1:] = a[1:], a, b

a = [3, 1]
b = [2, 3, 4, 5]

所以看起来顺序确实很重要,而且它似乎是从左到右的。

但是,如果我这样做,它会返回b, a[1:], a = a, b, a[1:]

a = [3, 4, 5]
b = [2, 1]

为什么它不首先评估哪个应该返回?b = a[2,3,4,5]

如果有人能向我解释这一点,将不胜感激......

Python 多重赋值

评论

0赞 wjandrea 10/24/2023
这回答了你的问题吗?了解 Python 交换:为什么 a, b = b, a 并不总是等价于 b, a = a, b?

答: 暂无答案