Олег Марков
Как использовать функцию filter в Python
Введение
Функция filter позволяет выбирать из коллекции только те элементы, которые удовлетворяют определённому условию. Это эффективный способ обрабатывать данные без использования циклов и дополнительных проверок.
В этой статье мы рассмотрим синтаксис filter, примеры использования с lambda и обычными функциями, а также покажем, как сочетать её с другими инструментами Python.
Если вы хотите детальнее изучить работу с функциональными возможностями Python — приходите на наш курс Основы Python. На курсе 209 уроков и 34 упражнения, AI-тренажеры для практики с кодом и задачами 24/7, решение задач с живым ревью наставника, еженедельные встречи с менторами.
Синтаксис функции filter
filter(function, iterable)function— функция, возвращающаяTrueилиFalseдля каждого элемента.iterable— итерируемый объект, который нужно фильтровать.
Результатом работы filter является объект filter, который можно преобразовать в список или другой контейнер:
numbers = [1, 2, 3, 4, 5]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # [2, 4]Применение с обычной функцией
def is_positive(x):
return x > 0
values = [-2, -1, 0, 1, 2]
positive_values = list(filter(is_positive, values))
print(positive_values) # [1, 2]Фильтрация строк и других объектов
Фильтровать можно строки, кортежи и другие итерируемые объекты:
words = ["apple", "banana", "cherry", "date"]
filtered = list(filter(lambda w: len(w) > 5, words))
print(filtered) # ['banana', 'cherry']Частые ошибки
- Не преобразовать объект filter в список или другой контейнер.
- Функция возвращает не
True/False. - Попытка фильтровать неитерируемый объект.
Часто задаваемые вопросы
- Можно ли использовать filter с множественными условиями? Да, объединяйте условия в lambda или в обычной функции:
list(filter(lambda x: x > 0 and x % 2 == 0, numbers))Можно ли фильтровать кортежи или строки? Да, результат можно преобразовать с помощью
tuple()или''.join()для строк.Чем filter отличается от list comprehension с условием? Filter функционален и хорошо читается с функциями, list comprehension более гибкий и читаемый в сложных выражениях.
Заключение
Функция filter помогает быстро отбирать элементы коллекции по заданному условию, делая код компактным и удобным для функционального программирования. Она часто используется совместно с map и lambda для эффективной обработки данных.
Для системного изучения filter, map и других функциональных возможностей Python рекомендую пройти курс Основы Python. В первых 3 модулях уже доступно бесплатное содержание — начните погружаться в мир Python прямо сегодня.
Постройте личный план изучения Python до уровня Middle — бесплатно!
Python — часть карты развития Backend
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Все гайды по Python
Лучшие курсы по теме

Основы Python
Антон Ларичев
Nest.js с нуля
Антон Ларичев