Python:通过字符串名称在for循环中调用并输出数组
解决方法
方法1:通过命名空间字典获取变量值
你可以利用Python的globals()(全局变量)或locals()(局部变量)函数,它们会返回包含当前作用域所有变量的字典,通过拼接好的变量名字符串作为键,就能拿到对应的数组:
import numpy as np A_foo = [1, 2, 3] B_foo = [4, 5, 6] for i in ["A", "B"]: var_name = i + '_foo' # 获取变量对应的数组,转成numpy数组输出 arr = np.array(globals()[var_name]) print(arr)
输出结果:
[1 2 3] [4 5 6]
方法2:用字典存储映射(推荐)
直接操作命名空间变量不是最佳实践,更规范的方式是提前把变量放到字典里,通过键值对的方式访问,代码可读性和安全性更高:
import numpy as np # 用字典存储前缀和数组的映射 foo_dict = { "A": [1, 2, 3], "B": [4, 5, 6] } for prefix in ["A", "B"]: arr = np.array(foo_dict[prefix]) print(arr)
输出结果与方法1一致。
内容的提问来源于stack exchange,提问作者coffeedealer
相关产品推荐
相关产品推荐

