Python Lambda-функции: Урок с примерами

Лямбда-выражения (анонимные функции) в 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 для создания небольших анонимных функций. Они удобны для краткого определения функции «на месте», например, при сортировке данных. Лямбда-выражение может содержать только одно выражение.

Что будем искать? Например,программа