Лямбда-выражения (анонимные функции) в Python — краткий способ создания функций без присвоения им имени.
Lambda-функции и обычные функции
Обычно функции в Python создаются оператором def. Лямбда-выражения — альтернативный способ, создающий объект функции без явного имени. Главное отличие: лямбда-функции анонимны (безымянные).
Они особенно полезны, когда синтаксис языка не позволяет использовать def, например, внутри литералов или при вызовах функций. Их можно встраивать непосредственно в другие конструкции, упрощая код.
Синтаксис лямбда-выражений
Лямбда-выражение — единственное выражение (в отличие от функции def, которая может содержать несколько строк). Это одновременно и преимущество (компактность), и ограничение (только одно выражение).
Синтаксис:
lambda аргументы: выражение
Ключевое слово lambda, затем через запятую аргументы, двоеточие и выражение, которое будет вычисляться и возвращаться функцией.
Примеры использования
Сравним обычные функции (def) и лямбда-выражения:
Пример 1: Площадь прямоугольника
Функция def:
def rectangle(a, b):
return a * b
print(rectangle(17, 14))
Лямбда-выражение:
print((lambda a, b: a * b)(17, 14))
Оба варианта вычисляют площадь. Лямбда-выражение делает это компактнее, в одной строке.
Пример 2: Максимум из двух чисел
Функция def:
def maximum(a, b):
if a > b:
return a
else:
return b
print(maximum(25, 17))
Лямбда-выражение:
print((lambda a, b: a if a > b else b)(25, 17))
Лямбда-выражение реализует ту же функциональность, но лаконичнее.
Лямбда-выражения — мощный инструмент в Python для создания небольших анонимных функций. Они удобны для краткого определения функции «на месте», например, при сортировке данных. Лямбда-выражение может содержать только одно выражение.