Комментарии (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] # фильтрация