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

Краткий ответ (для собеседования): Lambda‑функция в Python — это небольшая анонимная функция, которая пишется в одну строку с помощью ключевого слова lambda и содержит одну выражение, результат которого автоматически возвращается. Обычно её используют там, где нужна простая функция «на месте» — например, в sorted, map, filter.

Подробный ответ

Развернутое объяснение

Lambda‑функция (или анонимная функция) — это функция без имени, определяемая выражением вида:

lambda параметры: выражение

Такое выражение создаёт объект функции; при вызове он вычисляет указанное выражение и возвращает его результат. Пример простейшей lambda‑функции:

square = lambda x: x * x
square(5)  # 25

По сути это эквивалентно:

def square(x):
   return x * x

Разница не в «типе функции», а в формате записи: lambda — краткая запись одноразовой функции.

Основные свойства, которые важно озвучить на собеседовании:

  1. Анонимность. Lambda‑функция не имеет имени и часто передаётся сразу как аргумент другой функции, без предварительного объявления.

  2. Одно выражение. Внутри lambda нельзя писать несколько операторов, циклы и return; допускается только одно выражение, результат которого возвращается автоматически.

  3. Синтаксическая компактность. Удобна, когда полноценный def выглядит избыточно.

Где lambda‑функции применяются на практике?

Классические примеры, которые любят в вопросах и задачах:

В сортировке (ключ сортировки):

users = [
   {"name": "Анна", "age": 30},
   {"name": "Олег", "age": 25},
]
# сортируем по возрасту
sorted_users = sorted(users, key=lambda u: u["age"])

В map, filter, sorted и других функциях высшего порядка:

numbers = [1, 2, 3, 4]
# возвести все числа в квадрат
squares = list(map(lambda x: x * x, numbers))
# оставить только чётные
evens = list(filter(lambda x: x % 2 == 0, numbers))

Вместо небольших одноразовых функций‑заглушек (например, в конфигурации):

handlers = {
   "ping": lambda: "pong",
}

В бэкенде такие конструкции встречаются реже, чем обычные def, но ты часто увидишь их при конфигурировании маршрутов, написании простых ключей сортировки и мини‑выражений для обработки коллекций.

Lambda против обычной функции - краткое сравнение, которое ожидают услышать на собеседовании:

Lambda‑функция:

  1. определяется через lambda;

  2. обычно не имеет имени;

  3. может содержать только одно выражение;

  4. используется для коротких, простых операций «на месте».

Обычная функция (def):

  1. имеет имя;

  2. может содержать несколько строк кода, условия, циклы, return;

  3. подходит для любой нетривиальной логики и повторного использования.

На курсах в TeoBrain мы показываем, где lambda‑функция помогает сделать код компактнее (например, при сортировке), а где использование def даёт гораздо более читаемый и поддерживаемый код, что особенно важно в продакшн‑бэкенде.

Читать полную статью в блоге