我目前有一个n维的嵌套数组,其中n是可变的。 n的值在运行时确定。
给定输入索引(i1,i2,...,in),如何在此特定索引处访问嵌套数组中的项目?
例如,考虑n = 3和3X3X3阵列的情况。
nested_array = [
[[0,0,0],[0,0,0],[0,0,0]]
[[0,0,0],[0,0,0],[0,0,0]]
[[0,0,0],[0,0,0],[0,0,0]]
]
我想调用方法:
array.insert((1,1,1), new_item)
我想将index(1,1,1)处的项目设置为new_item。
据我所知,我无法使用数组[1] [1] [1]索引数组,因为维度在运行时才会被识别。
答案 0 :(得分:2)
numpy.array
可以array[index]
访问,其中index
是元组。
如果你不能使用numpy,你可以这样得到array[index[0]][index[1]][...]
:
reduce(lambda x, y: x[y], index, array)
并设置如下:
reduce(lambda x, y: x[y], index[:-1], array)[index[-1]] = new_value
可以使用lambda x, y: x[y]
模块中的getitem
替换运算符operator
。