Как получать элементы из списка, как-будто он бесконечный? Но без зацикливания?

В одном из прошлых вопросов мы рассмотрели, как в Python сделать список «бесконечным». Но прошлый пример был бесполезный, потому что давал зацикливание.
Поэтому новый вопрос — продолжение: как сделать, чтобы можно было брать элементы из списка столько, сколько нужно, но без зацикливания?
Дает зацикливание:

import itertools
a = [1,2,3,4]
for z in itertools.cycle(a):
    print(z)

Нужен правильный ответ.

import itertools
a = [1,2,3,4]
for z in range(100):
    print(???)

One thought on “Как получать элементы из списка, как-будто он бесконечный? Но без зацикливания?

  1. for x in range(10):
        print(next((x for x in itertools.cycle(a))))
    

    или так

    gen = (x for x in itertools.cycle(a)))
    for x in range(10):
        print(next(gen)
    

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *