← Все вопросы
Что такое lambda в Python и когда её использовать?
18
Видел такие штуки: key=lambda x: x[1]. Что такое lambda, чем она отличается от обычной функции через def и когда её реально стоит применять?
3 ответа
29
✓ Принятый ответ — помог автору
lambda — это анонимная функция в одну строку, без имени. Эти два кода делают одно и то же:
def square(x):
return x * x
square = lambda x: x * x
Отличия от def:
- нет имени (хотя можно присвоить переменной);
- только одно выражение, никаких
return, циклов, нескольких строк; - результат выражения возвращается автоматически.
Где применять: когда нужна крошечная функция «на один раз», обычно как аргумент. Самый частый случай — key в сортировке:
students = [('Аня', 18), ('Боря', 16)]
students.sort(key=lambda s: s[1]) # сортируем по возрасту
Если логика сложнее одной строки — пиши обычный def, так читаемее.
Даната Толкачева про key=lambda наконец понял, спасибо! · 15 месяцев назад
10
Анонимная функция-однострочник. Чаще всего нужна для key= в sorted/max/min и в map/filter.
4
Для sorted(..., key=...).
Ваш ответ
Войдите, чтобы ответить на вопрос.