Автоматически растущие списки в 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)

Продолжайте делать это.