我想将以下变量名称分配给一个目录,以便稍后操作。思路如下:
data_1= fits.getdata(.....)
data_2= fits.getdata(.....)
data_3= fits.getdata(.....)
。.
N=10
d={}
for i in range(N):
d['data_'+ str(i)] = data_i
是否有一种方法可以以类似的方式调用变量?
我已经编写了一个工作解决方案(请参阅我在代码中的注释,以便更好地理解)。但是你必须注意在Python中使用eval
函数,它是相当危险的。
代码:
data_1 = 1
data_2 = 2
data_3 = 3
N=10
d={}
for i in range(N):
try:
# IT DANGEROUS TO USE EVAL FUNCTION.
d['data_{}'.format(i)] = eval('data_{}'.format(i))
except NameError:
# Cannot set the variable in the dict. Get next element of loop.
pass
# Testing statements...
print(d["data_1"])
print(d["data_3"])
print(d["data_2"] + d["data_3"])
输出:
>>> python3 test.py
1
3
5