在Python中自动增长列表

时间:2010-12-28 08:15:13

标签: python list

有没有办法在Python中创建自动增长的列表?我的意思是制作一个列表,当引用一个尚不存在的索引时,该列表会增长。基本上是Ruby数组的行为。

提前致谢!

3 个答案:

答案 0 :(得分:37)

当然可以,你只需要使用列表的子类就可以了。

class GrowingList(list):
    def __setitem__(self, index, value):
        if index >= len(self):
            self.extend([None]*(index + 1 - len(self)))
        list.__setitem__(self, index, value)

用法:

>>> grow = GrowingList()
>>> grow[10] = 4
>>> len(grow)
11
>>> grow
[None, None, None, None, None, None, None, None, None, None, 4]

答案 1 :(得分:0)

列表在python中是动态的。它会自动增长(直到你点击sys.maxsize)你的程序。

  l = list()
  l.append(item)

继续这样做。

答案 2 :(得分:-1)

不,但你可以使用字典(哈希表)来实现同样的目的。