请问在python中可以用含有变量的数组进行索引吗?

问题遇到的现象和发生背景

我想在索引数组的时候可以带有变量,这样可以在写程序时只要写一段通用代码即可。

问题相关代码,请勿粘贴截图

np1=np.array([ [1,1,1,1],[0,0,0,0] ])
np2=np.array([ [1,1,1,1],[0,0,0,0] ])
B="np"+str(1)
B[1,1]+=1
print(np1)

运行结果及报错内容

B[1,1]+=1
TypeError: string indices must be integers

我的解答思路和尝试过的方法

我分析了错误原因是因为"B"直接被电脑认作字符串了,所以后面的索引也认为成字符串的索引(string indices must be integers)

我想要达到的结果

我希望最后依旧是数组的索引,就比如np1[1,1],但是这个np1可以由另外一个字符串来代替,比如B=np1(但是现在问题就是这个“np1”时字符串。)

用 eval(B) 或者 locals()[B] 把字符串作为变量名取变量的值

你题目的解答代码如下:

import numpy as np
np1=np.array([ [1,1,1,1],[0,0,0,0] ])
np2=np.array([ [1,1,1,1],[0,0,0,0] ])
B="np"+str(1)
x = eval(B)
#或者 x = locals()[B]
x[1,1]+=1
print(np1)

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img