Уступая, пока все необходимые значения не будут получены, есть ли способ сделать срез, чтобы стать ленивым
Есть ли способ прекратить давать, когда генератор не закончил значения и все необходимые результаты были прочитаны? Я имею в виду, что генератор дает значения, даже не делая StopIteration.
Например, это никогда не останавливается: (ПЕРЕСМОТРЕНО)
from random import randint
def devtrue():
while True:
yield True
answers=[False for _ in range(randint(100,100000))]
answers[::randint(3,19)]=devtrue()
print answers
Я нашел этот код, но пока не понимаю, как его применять в этом случае:http://code.activestate.com/recipes/576585-lazy-recursive-generator-function/