如何对一堆变量求和?
How to sum a bunch of variables?
假设我们有 1000 个变量:
a_1 = 4
a_2 = 6
.
.
.
a_1000 = 76
best/most 求和这些变量的有效方法是什么?像下面这样的东西会起作用吗:
sum_all_list = []
for i in range(1001):
sum_all_list.append(globals()['a_{}'.format(i)])
sum_all = sum(sum_all_list)
为什么不使用列表?
如果给定大量包含不同数字的变量。我会把它全部复制到一个文本文件中。并使用:
This。
然后把它变成一个列表。
我会在全局变量中搜索它们,然后简单地将它们相加:
res = 0
for vn,vv in globals().items():
if vn[:2] == 'a_':
res += vv
上面的例子可行,但您可以像这样直接对变量求和:
sum = 0
for _ in range(1001):
sum += globals()['a_{}'.format(i)]
但是,最好将所有值存储在一个列表中。
bunch_of_numbers = [1, 2, 3]
您可以使用 dir()
和 eval()
函数:
a_1 = 4
a_2 = 6
a_3 = 5
a_4 = 2
a_8 = 5
a_1859 = 20
varList = dir()
sum = 0
for var in varList:
if "a_" in var:
sum += eval(var)
print(sum)
结果输出:
42
假设我们有 1000 个变量:
a_1 = 4
a_2 = 6
.
.
.
a_1000 = 76
best/most 求和这些变量的有效方法是什么?像下面这样的东西会起作用吗:
sum_all_list = []
for i in range(1001):
sum_all_list.append(globals()['a_{}'.format(i)])
sum_all = sum(sum_all_list)
为什么不使用列表? 如果给定大量包含不同数字的变量。我会把它全部复制到一个文本文件中。并使用: This。 然后把它变成一个列表。
我会在全局变量中搜索它们,然后简单地将它们相加:
res = 0
for vn,vv in globals().items():
if vn[:2] == 'a_':
res += vv
上面的例子可行,但您可以像这样直接对变量求和:
sum = 0
for _ in range(1001):
sum += globals()['a_{}'.format(i)]
但是,最好将所有值存储在一个列表中。
bunch_of_numbers = [1, 2, 3]
您可以使用 dir()
和 eval()
函数:
a_1 = 4
a_2 = 6
a_3 = 5
a_4 = 2
a_8 = 5
a_1859 = 20
varList = dir()
sum = 0
for var in varList:
if "a_" in var:
sum += eval(var)
print(sum)
结果输出:
42