Олег Марков
Анонимные функции и lambda в Python
Введение
Анонимные функции в Python, или lambda, позволяют создавать функции без имени. Они часто применяются для упрощения кода, передачи функций в качестве аргументов и обработки данных в коллекциях.
В этой статье мы разберём синтаксис lambda, особенности использования и типичные сценарии применения в Python.
Если вы хотите глубже освоить функции в Python, включая lambda и замыкания — приходите на наш курс Основы Python. На курсе 209 уроков и 34 упражнения, AI-тренажеры для практики с кодом и задачами 24/7, решение задач с живым ревью наставника, еженедельные встречи с менторами.
Синтаксис lambda
Анонимная функция создаётся с помощью ключевого слова lambda:
lambda аргументы: выражениеПример:
add = lambda x, y: x + y
print(add(5, 3)) # 8Особенности:
- Содержит только одно выражение.
- Возвращает значение выражения автоматически.
- Не имеет собственного имени, если его не присвоить переменной.
Применение lambda
Сортировка списка словарей
users = [{"name": "Alice", "age": 25}, {"name": "Bob", "age": 20}]
users.sort(key=lambda u: u["age"])
print(users) # [{'name': 'Bob', 'age': 20}, {'name': 'Alice', 'age': 25}]Использование с функцией map
numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x**2, numbers))
print(squared) # [1, 4, 9, 16]Фильтрация данных с filter
numbers = [1, 2, 3, 4, 5]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # [2, 4]Сведение данных с reduce
from functools import reduce
numbers = [1, 2, 3, 4]
sum_all = reduce(lambda x, y: x + y, numbers)
print(sum_all) # 10Частые ошибки
- Слишком сложные выражения внутри lambda делают код нечитаемым.
- Попытка использовать многострочные конструкции.
- Злоупотребление lambda там, где лучше обычная функция.
Часто задаваемые вопросы
Можно ли использовать lambda вместо обычной функции всегда? Нет, для сложной логики лучше использовать обычные функции с
def.Можно ли использовать lambda с замыканиями? Да, lambda может ссылаться на переменные внешней области.
Как отлаживать lambda-функции? Используйте присвоение переменной и тестирование через print или в интерактивной сессии.
Заключение
Анонимные функции и lambda — удобный инструмент для компактного кода и функционального программирования в Python. Они часто применяются для обработки коллекций и передачи функций как аргументов.
Для системного изучения функций и lambda рекомендую пройти курс Основы Python. В первых 3 модулях уже доступно бесплатное содержание — начните погружаться в мир Python прямо сегодня.
Постройте личный план изучения Python до уровня Middle — бесплатно!
Python — часть карты развития Backend
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Все гайды по Python
Лучшие курсы по теме

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