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

Lambda‑функция (анонимная функция) в Python задаётся выражением вида lambda параметры: выражение. Это короткая форма объявления функции без имени: она создаёт объект функции, который можно сохранить в переменную или передать как аргумент, и при вызове вычисляет указанное выражение и возвращает результат.
Подробный ответ

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",
}

Lambda против обычной функции — что сказать на собеседовании

Lambda‑функция определяется через lambda, обычно без имени, может содержать только одно выражение и используется для коротких операций «на месте».

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

Оцени свой прогресс

Честно оцени своё понимание этого вопроса, чтобы мы могли построить твой учебный трек максимально эффективно.
Читать в блоге