У меня проблемы с доступом к объектам внутри моего 2D-списка в Python. В основном то, что я делаю, - это то, что у меня есть 2D-список с именем recueil
(по-французски - коллекция), в котором хранятся Reflection
объектов. Класс Reflection
имеет атрибут valeur
(= значение) и indice
(= индекс), где значение - это то, что я получаю, когда применяю функцию ref
(в настоящее время она не настроена) к отражению с более низким индексом (первая строка Reflections имеет один индекс, а n-я строка Reflections имеет n индексов, что объясняет indice[]
).
def main():
a = [1, 3, 5]
b = [2, 4, 6]
n = 3
recueil = [[Reflection([None],0) for colonne in range(N(ligne))] for ligne in range(n)]
recueil[0][0].valeur = b[0] - a[0]
recueil[0][1].valeur = b[1] - a[1]
recueil[0][2].valeur = b[2] - a[2]
for i in range(n):
print(recueil[0][i].valeur)
print(recueil[0][i].indice)
init_indices(recueil, n)
remplir_indices(recueil, n)
def N(n):
return 3 * (2 ** n)
def init_indices(recueil,n):
for i in range(n):
for j in range(N(i)):
recueil[i][j] = [0] * (i+1)
class Reflection(object):
indice = [0]
valeur = 0
def __init__(self, indice, valeur):
self.indice = indice
self.valeur = valeur
Проблема, с которой я столкнулся, заключается в том, что в remplir_indices
(= fill_indexes) я пытаюсь сделать так, чтобы начальные наборы имели индексы от 1 до n (поэтому recueil[0][0].indice
= 1, ..., recueil[0][n-1].indice
= n), но он обрабатывает recueil[][]
как список, а не как объект, хранящийся в нем. Есть идеи относительно моей ошибки?
def remplir_indices(recueil, n):
for i in range(n):
if i == 0:
for j in range(n):
recueil[i][j].indice[0] = j
else:
return 0