我们假设您有N个矩阵,名为A_1,... A_N。无论如何使用for
循环遍历这些矩阵?我的意思是,像:
B={}
for i in range(1,N+1):
B[i]=A_i
A_str(i)
或A_+str(i)
当然不起作用。
答案 0 :(得分:4)
您可以使用globals()
函数来检索全局命名空间,该命名空间返回所有变量的字典(在全局命名空间中),然后使用变量名称(string
)作为键来获取值从它。
示例 -
>>> A_1 = [1]
>>> gbl = globals()
>>> gbl['A_1']
[1]
对于你的情况 -
B={}
gbl = globals()
for i in range(1,N+1):
B[i]=gbl['A_' + str(i)]
另一个解决方案是使用eval()
来使用字符串获取值,但是请注意这是非常危险的,如果你不控制eval
的输入,因为eval执行字符串中的表达式返回结果。
示例 -
>>> A_1 = [1]
>>> eval('A_' + str(1))
[1]
答案 1 :(得分:2)
你可以这样做。在制作它们时将所有这些矩阵放在一个列表中
matrices = []
...
matrices.append(current_matrix)
然后遍历该列表
for i,matrix in enumerate(matrices):
B[i] = matrix