Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Multiple increment operators on the same line Python

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
like image 291
Jared Mackey Avatar asked Jan 09 '16 13:01

Jared Mackey


3 Answers

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))
like image 176
Mike Müller Avatar answered Sep 23 '22 10:09

Mike Müller


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)
like image 38
master_Alish Avatar answered Sep 23 '22 10:09

master_Alish


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)
like image 40
Eugene Yarmash Avatar answered Sep 26 '22 10:09

Eugene Yarmash