Что такое лямбда-функции в Python и в каких случаях их используют

Ответ

Лямбда-функция — это небольшая анонимная (безымянная) функция в 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'] кратко и элегантно определяет правило для сортировки, не требуя объявления отдельной именованной функции.