Python class that works as list of lists

2019-09-25 12:06发布

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条回答
孤傲高冷的网名
2楼-- · 2019-09-25 12:44

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]
查看更多
登录 后发表回答