Я хотел бы знать, есть ли класс, доступный, либо в стандартной библиотеке, либо в Pypi, который соответствует этому описанию.
Конструктор будет использовать итератор.
Он будет реализовывать протокол контейнера (т. Е. __Getitem__, __len__ и т. Д.), Чтобы срезы, длина и т. Д. Работали. При этом он будет повторять и сохранять достаточно значений из аргумента конструктора, чтобы предоставить любую запрашиваемую информацию.
Таким образом, если запрошен jitlist [6], он вызовет self.source.next () 7 раз, сохранит эти элементы в своем списке и вернет последний.
Это позволило бы нижестоящему коду использовать его в качестве списка, но избежать ненужного создания экземпляра списка для случаев, когда функциональность списка не нужна, и избежать выделения памяти для всего списка, если запрошено только несколько элементов. *
Это кажется довольно простым для написания, но это также кажется достаточно полезным, так что вполне вероятно, что кто-то уже сделал его доступным в модуле.