【问题标题】:How to initialize Runtime array with name from the list如何使用列表中的名称初始化运行时数组
【发布时间】:2022-01-03 10:17:26
【问题描述】:
我有一个名为的列表
list_1 = ["File_A","File_B","File_C","File_D"]
我想运行一个循环并得到四个数组
File_A = np.array(0)
File_B = np.array(0)
File_C = np.array(0)
File_D = np.array(0)
如果可能请回复
【问题讨论】:
标签:
python
arrays
list
loops
【解决方案1】:
我强烈建议您使用locals()(或globals() 或vars())动态操作变量:
list_1 = ['File_A', 'File_B', 'File_C', 'File_D']
for v in list_1:
locals()[v] = np.array(0)
输出:
>>> File_A
array(0)
>>> File_B
array(0)
>>> File_C
array(0)
>>> File_D
array(0)
注意:File_A, File_B, ... 应该是有效的 Python 名称标识符。
【解决方案2】:
也许你可以使用字典对象。
list_1 = ["File_A","File_B", "File_C", "File_D"]
myFileLists = {}
for _file in list_1:
myFileLists[_file] = []
要查看元素,例如为“File_A”创建的列表:
print (myFileLists['File_A'])
【解决方案3】:
如果我正确理解了这个问题,这似乎是使用字典的理想案例。例如:
import numpy
list_1 = ["File_A", "File_B", "File_C", "File_D"]
D = {k: numpy.array(0) for k in list_1}
然后您可以“按名称”访问 numpy 数组:
D['File_A']
...等等