Вопрос №13
Осталось:
Что такое анонимная функция?
Образцовый ответ
Показывать ответ по умолчанию
Lambda — это анонимная (безымянная) функция, определяемая в одну строку. Она может принимать любое количество аргументов, но содержит только одно выражение.
Синтаксис:
# Обычная функция def square(x): return x ** 2 # Эквивалентная lambda square = lambda x: x ** 2 square(5) # 25
Использование с sorted:
users = [ {"name": "Анна", "age": 25}, {"name": "Борис", "age": 30}, {"name": "Вера", "age": 20}, ] # Сортировка по возрасту sorted_users = sorted(users, key=lambda u: u["age"])
Использование с map и filter:
numbers = [1, 2, 3, 4, 5] squares = list(map(lambda x: x ** 2, numbers)) # [1, 4, 9, 16, 25] evens = list(filter(lambda x: x % 2 == 0, numbers)) # [2, 4]
Ограничения:
- Только одно выражение — нельзя использовать многострочную логику, циклы или присваивания.
- Снижает читаемость при сложных выражениях — лучше использовать обычную функцию.
- Нет имени — сложнее отлаживать (в traceback отображается как <lambda>).
