【问题标题】:Python: setting two variable values separated by a comma in pythonPython:在python中设置两个用逗号分隔的变量值
【发布时间】:2015-10-12 12:39:18
【问题描述】:

python中做的有什么区别:

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

a = c
b = max(a, b)

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

【问题讨论】:

标签: python python-2.7 variable-assignment


【解决方案1】:

您的两个 sn-ps 做不同的事情:尝试使用 abc 分别等于 789

第一个 sn -p 将三个变量设置为989。换句话说,max(a, b) 是在a 分配给c 的值之前计算的。本质上,a, b = c, max(a, b) 所做的只是将两个值压入堆栈;变量ab 然后在弹出时分配给这些值。

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

【讨论】:

  • 如何用多行代码重写第一个sn-p?使用“临时”变量来保存我猜测的值?
  • @farid99:是的,临时变量是个好方法:temp = max(a, b) 然后a = c 然后b = temp。或者,在这种情况下,您可以仔细选择两行的顺序,例如b = max(a, b) 然后a = c 应该有同样的效果。
【解决方案2】:

它们是不同的。第二个好像在做

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多