Автоматически растущие списки в Python
Есть ли способ сделать автоматически растущий список в Python? Я имею в виду сделать список, который будет расти, когда указатель, который еще не существует, ссылается. В основном поведение массивов Ruby.
Спасибо заранее!
Ответы
Ответ 1
Возможно, вам просто нужно использовать подкласс списка для этого.
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]
Ответ 2
Нет, но вы можете использовать словарь (хеш-таблицу) для достижения того же.
Ответ 3
Списки являются динамическими в python. Он будет автоматически расти всегда (до тех пор, пока вы не нажмете sys.maxsize) в вашей программе.
l = list()
l.append(item)
Продолжайте делать это.