Ответ
Лямбда-функция — это небольшая анонимная (безымянная) функция в Python, определяемая с помощью ключевого слова lambda
.
Ключевые особенности:
- Синтаксис:
lambda arguments: expression
. - Аргументы: Может принимать любое количество аргументов.
- Тело: Состоит только из одного выражения, результат которого неявно возвращается (явный
return
не используется). - Назначение: Используется для создания коротких, одноразовых функций там, где полноценное объявление через
def
было бы избыточным.
Основной сценарий использования — передача функции в качестве аргумента в функции высшего порядка, такие как map()
, filter()
и sorted()
.
Сравнение с обычной функцией:
# Обычная функция
def square(x):
return x * x
# Эквивалентная лямбда-функция
square_lambda = lambda x: x * x
print(square(5)) # Вывод: 25
print(square_lambda(5)) # Вывод: 25
Практический пример (сортировка списка словарей по ключу):
points = [{'x': 2, 'y': 3}, {'x': 4, 'y': 1}]
# Сортировка по координате 'y' с помощью лямбда-функции
points.sort(key=lambda p: p['y'])
print(points) # Вывод: [{'x': 4, 'y': 1}, {'x': 2, 'y': 3}]
В этом примере лямбда-функция lambda p: p['y']
кратко и элегантно определяет правило для сортировки, не требуя объявления отдельной именованной функции.