问题
I'm trying to create a python class that can work as a list of lists. However, all I've managed to develop so far is,
class MyNestedList(list):
...
I'm aware that the above code will work as,
my = MyNestedList()
my[0] = 1
...
But I want my class to work as,
my[0][0] = 1
...
Will anyone please guide me further?
EDIT: I want the class to pass as a type for the deap framework, as my individual. I can't pass list of lists as my type as it would break my structure.
回答1:
Here is an example. You have to initialize the nested list with enough elements, or you'll get index errors.
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]
来源:https://stackoverflow.com/questions/47732330/python-class-that-works-as-list-of-lists