Python: setting two variable values separated by a comma in python

本小妞迷上赌 提交于 2019-12-17 21:06:58

问题


What is the difference in python between doing:

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

and

a = c
b = max(a, b)

what does having the two variable assignments set on the same line do?


回答1:


Your two snippets do different things: try with a, b and c equal to 7, 8 and 9 respectively.

The first snippet sets the three variables to 9, 8 and 9. In other words, max(a, b) is calculated before a is assigned to the value of c. Essentially, all that a, b = c, max(a, b) does is push two values onto the stack; the variables a and b are then assigned to these values when they are popped back off.

On the other hand, running the second snippet sets all three variables to 9. This is because a is set to point to the value of c before the function call max(a, b) is made.




回答2:


They are different. The second one is like doing

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

because you are assigning c to a before doing b = max(a, b). While the first one is using the old value of a to calculate it.



来源:https://stackoverflow.com/questions/31566500/python-setting-two-variable-values-separated-by-a-comma-in-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!