Пост похожий на
полезные функции, но все так не то...
Добавление проверок и вложенных циклов (функция filter):
Добавив после цикла for
оператор if получим реализацию логики выбора. Генераторы списков с оператором if можно представить как аналог встроенной функции filter – они пропускают элементы, для которых условное выражение в операторе if возвращает ложь.
Две версии реализации выбора четных чисел в диапазоне от
0 до 4 – с помощью генератора списка и с помощью функции filter:
№1
>>> [x for x in range(5) if x % 2 == 0]
[0, 2, 4]
№2 (filter+lambda)
>>> list(filter((lambda x: x % 2 == 0), range(5)))
[0, 2, 4]
Добиваемся эффекта действия функций filter и map в единственном выражении:
>>> list(map((lambda x: x**2), filter((lambda x: x % 2 == 0), range(10))))
[0, 4, 16, 36, 64]