我有一些数据数组,我想对其执行类似的计算,因此我想根据它们的名称迭代它们。一些伪代码例如:
l = 1000 # example length of data arrays
n = 3 # number of arrays
data_1 = [1] * l
data_2 = [2] * l
data_3 = [3] * l
# l can vary in size, so arrays aren't fixed length
for i in range(n):
for j in range(l):
data_[i][j] = some_length_based_maths[j]
这种以迭代方式按名称调用数据数组的语法让我感到困惑。
我可能应该使用二维数组或其他东西并调用元素[i][j]
,但如果可能的话,在此应用程序中将其全部分开会更容易。
谢谢!
最佳答案
您最好使用 Python 字典来获得更干净的解决方案。对于您当前的要求,您可以执行以下操作:
for i in range(n):
for j in range(l):
eval('data_'+str(i))[j] = some_length_based_maths[j]
以及某种免责声明: Is using eval in Python a bad practice?
处理这个问题的更好方法(使用字典)
l = 1000 # example length of data arrays
data_dict = {}
data_dict['data_1'] = [1] * l
data_dict['data_2'] = [2] * l
data_dict['data_3'] = [3] * l
# l can vary in size, so arrays aren't fixed length
for i in data_dict:
for j in range(l):
data_dict[i][j] = some_length_based_maths[j]
关于Python 根据变量名称迭代变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43205087/