Python:在python中设置两个用逗号分隔的变量值

时间:2015-07-22 14:45:06

标签: python python-2.7 variable-assignment

python在做什么之间有什么区别:

a, b = c, max(a, b)

a = c
b = max(a, b)

在同一行上设置两个变量赋值有什么作用?

2 个答案:

答案 0 :(得分:6)

您的两个代码段做了不同的事情:分别尝试bc7等于899

第一个代码段将三个变量设置为89max(a, b)。换句话说,{<1}}在 a被分配给c的值之前计算。基本上,a, b = c, max(a, b)所做的就是将两个值压入堆栈;然后,当弹出它们时,变量ab将分配给这些值。

另一方面,运行第二个代码段会将所有三个变量设置为9。这是因为a设置为在函数调用c之前指向max(a, b)的值。

答案 1 :(得分:3)

他们是不同的。第二个就像做

a, b = c, max(c, b)

因为您在执行c之前将a分配给b = max(a, b)。第一个是使用a的旧值来计算它。