Jared Mackey
Jared Mackey

Reputation: 4158

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

Upvotes: 5

Views: 2880

Answers (4)

Eugene Yarmash
Eugene Yarmash

Reputation: 149726

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)

Upvotes: 1

Mike Müller
Mike Müller

Reputation: 85422

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))

Upvotes: 8

wallabra
wallabra

Reputation: 442

There is an easy way by making a list and looping over it:

value1, value2, value3 = 0
value4 = 100
valuelist = [value1, value2, value3]
for x in valuelist:
    x += value4

Upvotes: -5

master_Alish
master_Alish

Reputation: 383

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)

Upvotes: 4

Related Questions