Есть ли способ сделать map
ленивый? Или есть еще одна реализация его встроенного в Python?Lazy map function in Python
Я хочу что-то вроде этого, чтобы работать:
from itertools import count
for x in map(lambda x: x**2, count()):
print x
Конечно, приведенный выше код не будет конца, но я хотел бы просто ввести какое-либо условие (или более сложная логика) внутри for
и остановитесь в какой-то момент.
Смотрите здесь: [ Знайте, когда быть Ленивым] (http://davywybiral.blogspot.com/2008/08/python-know-when-to-be-lazy.html). Короче: либо использовать выражения генератора, либо использовать модуль itertools. –
@RobertHarvey: Хорошая ссылка. На самом деле, кроме того, что вы делаете 'x * 2' вместо' x ** 2', блог в значительной степени идеально подходит для этого вопроса! – abarnert
@RobertHarvey Очень хорошая статья. Спасибо! –