Python元组赋值顺序是固定的吗?
问题描述
将
a, a = 2, 1
总是导致等于1?换句话说,元组赋值保证是从左到右的吗?
当我们不仅有a,而是a[i]、a[j]以及i和j可能相等或可能不相等时,问题就变得相关了。
解决方案
是的,元组分配必须从左到右进行,这是Python语言参考的一部分。
https://docs.python.org/2.3/ref/assignment.html
赋值语句计算表达式列表(请记住 这可以是单个表达式或逗号分隔的列表,后者 产生元组),并将单个结果对象分配给 目标按从左到右的顺序列出。
所以所有的Python实现都应该遵循这个规则(正如另一个答案中的实验所证实的那样)。
就我个人而言,我仍然会犹豫是否使用它,因为对于未来的代码读者来说,它似乎不清楚。
相关文章