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?
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With