вызвать генератор (который не может завершаться) фиксированное количество раз

65
5

есть ли более питонический способ вызвать генератор (тот, который может или не может завершиться) определенное количество раз?

например: если я хочу называть endless эксцессу N = 7 раз, я мог бы так:

from itertools import count, accumulate

N = 7
endless = accumulate(count())
for _, out in zip(range(N), endless):
print(out)

что мне не нравится в этом, так это то, что он немного подвержен ошибкам (изменение порядка range и генератор будет называть генератор N+1 раз), и что мне нужно обрабатывать вывод из range (который я делаю с _ переменная).

спросил(а) 2021-01-19T18:18:01+03:00 9 месяцев назад
1
Решение
121

о, я просто, возможно, нашел для себя возможный ответ на это сам:

from itertools import islice, count, accumulate

N = 7
endless = accumulate(count())
for out in islice(endless, N):
print(out)

(... я должен удалить вопрос?)

ответил(а) 2021-01-19T18:18:01+03:00 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема