Junior
46
questionbank

Как работает функция filter() в Python?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Функция filter(function, iterable) создает итератор из тех элементов iterable, для которых function(item) возвращает истинное (true) значение.

Принцип работы:

  1. filter принимает два аргумента: функцию (function) и итерируемый объект (iterable).
  2. Она обходит каждый элемент item в iterable.
  3. Для каждого item вызывается функция function(item).
  4. Если результат вызова function(item) является истинным (любое значение, которое оценивается как True в булевом контексте), item включается в результирующий итератор.
  5. Если результат ложный (False, None, 0, пустые коллекции), item пропускается.
  6. filter возвращает итератор, который лениво генерирует отфильтрованные элементы.

Пример использования:

python

Отличие от генераторов списков:

  • filter возвращает итератор (ленивое выполнение), что эффективно для больших данных.
  • Генератор списка создает новый список сразу (требует больше памяти).
Признакfilter()Генератор списка
Возвращаемый типИтераторСписок
ВычислениеЛенивое (по требованию)Жадное (сразу при создании)
ПамятьЭффективно для больших данныхМожет потреблять много памяти
Синтаксисfilter(func, iterable)[item for item in iterable if condition]