Доступ к элементу array[][]...[] с N "[]" автоматически
Сначала я прошу прощения, если этот вопрос уже задавался. Я искал это, но ничего не нашел.
Учитывая следующий код:
RHO = RHOarray(D,nbInter)
print(RHO)
for k in range(N):
for l in range(D):
j=0
Coord=[0 for i in range(D)]
while ((X[k][l]>mini+(j+1)*step) and (j<nbInter)):
j+=1
Coord[l]+=j
RHO[ ]
for k in range(len(RHO)):
RHO[k]/=N
return RHO
RHO является массивом D-размеров, размером nbInter. (RHOarray - это функция, которая создает такой массив). Проблема в том, что в соответствии со значением D, мне нужно получить доступ к RHO[n], если D = 1, RHO[n][m], если D = 2 ... RHO[n][m]...[что угодно indice] с увеличением D На самом деле каждый индекс будет Coord[0], Coord[1]... и так далее, так что я знаю, что я должен добавить в каждый индекс. Чтобы сделать вопрос "проще": как я могу сделать так, чтобы число "[...]" после RHO увеличивалось так же, как и D?
Я надеюсь, что я был ясен. Я француз, и даже на своем родном языке все еще сложно объяснить. заранее спасибо
ps Исходный код длиннее, но я не думаю, что нужно показывать его полностью.
1 ответ
Вы могли бы просто сделать что-то вроде
indices = [1, 2, 3, 4, 5]
value = X
for i in indices:
value = value[i]
print(value)
Если X
массив NumPy, вы могли бы сделать напрямуюX[(1,2,3)]
вместо X[1, 2, 3]
или же X[1][2][3]