是否可以在Python的同一行上执行多个变量增量?
示例:
value1, value2, value3 = 0
value4 = 100
value1, value2, value3 += value4
在我的真实程序中,我有很多不同的变量,但必须在一个点上添加一个变量。
我目前正在做的事情,我想要替换它:
value1 += value4
value2 += value4
value3 += value4
...
value25 += value4
答案 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