Глава 13 · Автоматизация с помощью функций
Лямбда-функции
Маленькие безымянные функции в одну строку — удобны в конкретных, узких случаях.
Лямбда-функция — это способ создать маленькую безымянную функцию в одну
строку. Тот же результат, что и через def, но короче:
lambda.py
kvadrat = lambda x: x ** 2
print(kvadrat(5)) # 25
Слева от двоеточия — параметры (без скобок), справа — единственное выражение, результат
которого автоматически возвращается (без явного return).
Где лямбда действительно полезна
Чаще всего лямбда-функции передают как аргумент в другую функцию — например, чтобы задать правило сортировки:
lambda_sortirovka.py
slova = ["python", "я", "программирование"]
slova.sort(key=lambda word: len(word))
print(slova) # ["я", "python", "программирование"] — от короткого к длинному
Простая функция: def → lambda
Обычная функция (def)
def kvadrat(x):
return x ** 2
print(kvadrat(5))
Лямбда-функция
kvadrat = lambda x: x ** 2
print(kvadrat(5))
Что использовать сегодня: обычную функцию с
def — она читается яснее, у неё есть нормальное имя для отладки, и в неё легко добавить несколько строк логики или комментарий. lambda удобна только для одной короткой строки без имени — например, как аргумент функции sorted() или max(). Использовать lambda ради самой lambda, когда подошла бы обычная функция, — плохой стиль, а не «более современный».Практика в Jupyter Notebook
13-06-lambda.ipynb · лямбда-функции на практике