Python中的自动扩展列表
有没有办法在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]