Итераторы и лямбды-две разные вещи. Лямбда - это простая встроенная функция, а итератор - это объект, который возвращает последовательные объекты. В вашем примере есть две основные проблемы: вы тестируете x
вместо y
, и все значения в x
будут приниматься за y>10 or y<20
. Таким образом, исправляя их, ваш пример может быть написан с использованием итератора и лямбда-выражения, например:
for value in filter(lamdba y: y < 10 or y > 20, x):
print(value)
Есть несколько способов сделать это, но с точки зрения производительности это зависит от того, какие данные вы обрабатываете, как вы их обрабатываете и сколько вы обрабатываете. См. http://wiki.python.org/moin/PythonSpeed/PerformanceTips для полезного руководства.