Itertools.ifilter против. фильтр против. список понятийPython

Программы на Python
Anonymous
Itertools.ifilter против. фильтр против. список понятий

Сообщение Anonymous »

Я пытаюсь поближе познакомиться с модулем itertools и нашел функцию ifilter.

Насколько я понимаю, она фильтрует и выполняет итерацию на основе заданной функции и возвращает итератор по списку, содержащему элементы итерации, на которых функция оценивается как True.

Вопрос 1: правильно ли я понимаю?

Вопрос 2: помимо того факта, что это возвращает и итератор, чем он отличается от встроенной функции фильтра?

Вопрос 3 Что быстрее?

От чего Могу сказать, что это не так. Я что-то упускаю? (Я провел следующий тест)

>>> itertools.ifilter(lambda x: x%2, range(5))

>>> for i in itertools.ifilter(lambda x: x%2, range(5)): print i
...
1
3
>>> filter(lambda x: x%2, range(5))
[1, 3]
>>> function = lambda x: x%2
>>> [item for item in range(5) if function(item)]
[1,3]

Вернуться в «Python»