Python 根据变量名称迭代变量

标签 python arrays loops for-loop iteration

我有一些数据数组,我想对其执行类似的计算,因此我想根据它们的名称迭代它们。一些伪代码例如:

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/

相关文章:

javascript - 在 Javascript 的连续循环中使用相同的变量是否可以?

python - 与 Python fn 模块一起使用的函数

c++ - 使用 Cython 包装使用 OpenCV 类型作为参数的 C++ 类

Python "Hangman"代码

mysql - 在 Ruby 中比较两个数组并创建第三个元素数组

php - 从左到右插入记录到3列

python - 尝试将日志方法应用于 Python 中的 pandas 数据框列时出错

python - 调试 Python fatal error : GC Object already Tracked

javascript - Array.push() 函数的替代代码

java - 将行和列设置为数组