Класс Python, который работает как список списков
Я пытаюсь создать класс Python, который может работать как список списков. Тем не менее, все, что мне удалось разработать, это
class MyNestedList(list):
...
Я знаю, что приведенный выше код будет работать как,
my = MyNestedList()
my[0] = 1
...
Но я хочу, чтобы мой класс работал как,
my[0][0] = 1
...
Кто-нибудь, пожалуйста, ведите меня дальше?
РЕДАКТИРОВАТЬ: я хочу, чтобы класс передавался как тип для глубокой структуры, как мой человек. Я не могу передать список списков как мой тип, поскольку это нарушило бы мою структуру.
1 ответ
Вот пример. Вы должны инициализировать вложенный список с достаточным количеством элементов, иначе вы получите ошибки индекса.
class NestedLst(object):
def __init__(self, x, y):
self.data = [[None]*y]*x
def __getitem__(self, i):
return self.data[i]
nlst = NestedLst(2, 2)
nlst[0][0] = 10
print nlst[0][0]