У меня есть следующие функции:Можно ли выразить эту функцию с помощью генератора?
def infinite_sequence(starting_value, function):
value = starting_value
while True:
yield value
value = function(value)
Можно ли выразить это как генератор понимания? Если бы мы имели дело с фиксированным диапазоном, вместо бесконечной последовательности, он может рассматриваться как так: (Edit: на самом деле это не так)
(function(value) for value in range(start, end))
Но так как мы имеем дело с бесконечной последовательностью, можно ли это выразить, используя понимание генератора?
Это почти * 'itertools.accumulate', но с достаточными различиями, чтобы подражать одному с другим больнее, чем это стоит. Я не думаю, что есть выражение генератора, особенно не тот, который читается лучше этой очень простой и идиоматической функции. – delnan
Замечание по терминологии: нет такого понятия, как понимание генератора. Вы хотите использовать генератор * выражение *, который синтаксически выглядит как * list *. – chepner
Почему бы не оставить его как функцию? – wwii