同一行Python上的多个增量运算符

时间:2016-01-09 13:17:57

标签: python increment

是否可以在Python的同一行上执行多个变量增量?

示例:

value1, value2, value3 = 0
value4 = 100
value1, value2, value3 += value4

在我的真实程序中,我有很多不同的变量,但必须在一个点上添加一个变量。

我目前正在做的事情,我想要替换它:

value1 += value4
value2 += value4
value3 += value4
...
value25 += value4

4 个答案:

答案 0 :(得分:7)

元组和生成器解包在这里很有用:

value1, value2, value3 = 0, 0, 0
value4 = 100
value1, value2, value3 = (value4 + x for x in (value1, value2, value3))

答案 1 :(得分:4)

您可以为它创建特殊功能:

def inc(value, *args):
    for i in args:
        yield i+value

并使用它:

value1 = value2 = value3 = 0
value4 = 100
value1, value2, value3 = inc(value4, value1, value2, value3)

答案 2 :(得分:1)

您可以通过当前命名空间的字典更新变量(例如vars()):

>>> value1 = value2 = value3 = 0
>>> value4 = 100
>>> for varname in ("value1", "value2", "value3"):
...     vars()[varname] += value4
... 
>>> value1, value2, value3
(100, 100, 100)

答案 3 :(得分:-5)

通过制作列表并循环遍历它可以轻松实现:

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