Что такое lambda-функция (анонимная функция)?

«Что такое lambda-функция (анонимная функция)?» — вопрос из категории Основы программирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Lambda-функция — это анонимная (безымянная) функция, определяемая в одной строке с помощью ключевого слова lambda. Она может принимать аргументы и возвращает результат вычисления единственного выражения.

Синтаксис (на примере Python):

lambda arguments: expression

Основные характеристики:

  • Анонимность: Не требует имени и оператора def.
  • Одно выражение: Тело функции ограничено одним выражением, которое автоматически возвращается.
  • Использование как объекта: Может быть присвоена переменной или передана как аргумент.

Типичные сценарии использования:

  1. Как аргумент для функций высшего порядка (map, filter, sorted):

    numbers = [1, 2, 3, 4, 5]
    squared = list(map(lambda x: x ** 2, numbers))  # [1, 4, 9, 16, 25]
    evens = list(filter(lambda x: x % 2 == 0, numbers))  # [2, 4]
    
    points = [(1, 2), (3, 1), (5, -1)]
    sorted_by_y = sorted(points, key=lambda point: point[1])  # [(5, -1), (3, 1), (1, 2)]
  2. Внутри других конструкций (редко, для краткости):

    # Присваивание переменной (обычная функция часто предпочтительнее)
    add = lambda a, b: a + b
    print(add(5, 3))  # 8

Почему это важно: Лямбды обеспечивают лаконичность при работе с небольшими операциями, особенно в функциональном стиле программирования. Однако для сложной логики всегда следует использовать именованные функции (def) в интересах читаемости и отладки.