有没有办法在Python中创建自动增长的列表?我的意思是制作一个列表,当引用一个尚不存在的索引时,该列表会增长。基本上是Ruby数组的行为。
提前致谢!
答案 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)
不,但你可以使用字典(哈希表)来实现同样的目的。