← Назад к вопросам

Что такое filter в Python?

1.0 Junior🔥 291 комментариев
#Python

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI30 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что такое filter в Python?

filter() — это встроенная функция Python, которая создаёт итератор, содержащий только те элементы из последовательности, которые удовлетворяют определённому условию (предикату). Это инструмент функционального программирования для фильтрации данных.

Основной синтаксис

filtered_data = filter(function, iterable)

где:

  • function — функция-предикат, возвращающая True/False
  • iterable — последовательность для фильтрации (список, кортеж, etc.)
  • результат — объект-итератор (не список!)

Практические примеры

Пример 1: Фильтрация чисел

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # [2, 4, 6, 8, 10]

Пример 2: Фильтрация со своей функцией

def is_positive(x):
    return x > 0

data = [-5, -2, 0, 3, 7, -1]
positives = list(filter(is_positive, data))
print(positives)  # [3, 7]

Пример 3: Удаление None значений

values = [1, None, 2, None, 3, 4]
non_none = list(filter(None, values))
print(non_none)  # [1, 2, 3, 4]

Альтернативы (более современные подходы)

List Comprehension — предпочтительный способ в Python:

even_numbers = [x for x in numbers if x % 2 == 0]

Generator Expression — для больших данных:

even_gen = (x for x in numbers if x % 2 == 0)

Когда использовать filter()?

  • Когда работаешь с готовыми функциями (особенно из библиотек)
  • Функциональный стиль кода
  • Обработка потоков данных в pipeline

Однако в большинстве случаев list comprehension более читаемо и Pythonic.

В контексте Data Science

Для работы с датасетами часто используется фильтрация через pandas:

import pandas as pd

df = pd.DataFrame({'age': [25, 30, 35, 40], 'salary': [50000, 60000, 70000, 80000]})
high_earners = df[df['salary'] > 60000]  # фильтрация
Что такое filter в Python? | PrepBro