← Все вопросы

Что такое lambda в Python и когда её использовать?

Задан 15 месяцев назад1.1к просмотров3 ответа
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=...).

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект