【问题标题】: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']
    

    ...等等

    【讨论】:

      猜你喜欢
      • 2011-06-05
      • 2021-11-18
      • 1970-01-01
      • 1970-01-01
      • 2016-03-08
      • 1970-01-01
      • 2015-02-07
      • 2023-03-13
      • 2020-12-18
      相关资源
      最近更新 更多