Python中的自动扩展列表

21 投票
3 回答
19761 浏览
提问于 2025-04-16 09:07

有没有办法在Python中创建一个自动扩展的列表?我的意思是,当你引用一个还不存在的索引时,这个列表会自动增加。基本上就是像Ruby中的数组那样的行为。

提前谢谢你!

3 个回答

-1

不可以,不过你可以用字典(哈希表)来实现同样的功能。

2

在Python中,列表是动态的。这意味着它会自动扩展,直到达到系统的最大限制(sys.maxsize)。

  l = list()
  l.append(item)

继续这样做吧。

46

当然可以,你只需要使用列表的一个子类来实现这个功能。

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]

撰写回答