在Python中浏览一组矩阵的名称

时间:2015-06-25 05:46:06

标签: python matrix

我们假设您有N个矩阵,名为A_1,... A_N。无论如何使用for循环遍历这些矩阵?我的意思是,像:

B={}
for i in range(1,N+1):
       B[i]=A_i

A_str(i)A_+str(i)当然不起作用。

2 个答案:

答案 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