Is it possible to do multiple variable increments on the same line in Python?
Example:
value1, value2, value3 = 0
value4 = 100
value1, value2, value3 += value4
In my real program I have LOTS of variables that are different but must all be added on with a single variable at one point.
What I am currently doing that I wanted this to replace:
value1 += value4
value2 += value4
value3 += value4
...
value25 += value4
Tuple and generator unpacking can be useful here:
value1, value2, value3 = 0, 0, 0
value4 = 100
value1, value2, value3 = (value4 + x for x in (value1, value2, value3))
You can create special function for it:
def inc(value, *args):
for i in args:
yield i+value
And use it:
value1 = value2 = value3 = 0
value4 = 100
value1, value2, value3 = inc(value4, value1, value2, value3)
You can update the variables through the dictionary of the current namespace (e.g. vars()
):
>>> value1 = value2 = value3 = 0
>>> value4 = 100
>>> for varname in ("value1", "value2", "value3"):
... vars()[varname] += value4
...
>>> value1, value2, value3
(100, 100, 100)
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