lambda параметры: выражение. Это короткая форма объявления функции без имени: она создаёт объект функции, который можно сохранить в переменную или передать как аргумент, и при вызове вычисляет указанное выражение и возвращает результат.
Что такое lambda‑функция?
Подробный ответ
Lambda‑функция (или анонимная функция) — это функция без имени, определяемая выражением вида:
lambda параметры: выражениеТакое выражение создаёт объект функции; при вызове он вычисляет указанное выражение и возвращает его результат. Пример простейшей lambda‑функции:
square = lambda x: x * x
square(5) # 25По сути это эквивалентно:
def square(x):
return x * xРазница не в «типе функции», а в формате записи: lambda — краткая запись одноразовой функции.
Основные свойства, которые важно озвучить на собеседовании:
Анонимность. Lambda‑функция часто передаётся сразу как аргумент другой функции, без предварительного объявления по имени.
Одно выражение. Внутри
lambdaнельзя писать несколько операторов, циклы иreturn; допускается только одно выражение, результат которого возвращается автоматически.Компактность. Удобна, когда полноценный
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, имеет имя, может содержать несколько строк кода, условия, циклы и подходит для любой нетривиальной логики и повторного использования.
Оцени свой прогресс