До сих пор мы всегда давали имена нашим функциям с помощью ключевого слова def. Однако существует специальный класс функций, для которых нам не нужно указывать имена функций.
Лямбда — это анонимная функция, которая возвращает некоторую форму данных.
Лямбды определяются с помощью ключевого слова lambda. Поскольку они возвращают данные, рекомендуется присваивать их переменной.
Синтаксис:
lambda parameters : expression
где:
Давайте попробуем создать несколько простых лямбд.
Ниже мы можем найти лямбду, которая утраивает значение параметра и возвращает это новое значение:
triple = lambda num : num * 3 # Присваиваем лямбду переменной
print(triple(10)) # Вызываем лямбду с параметром
Вот простая лямбда, которая объединяет первые символы трех строк вместе:
concat_strings = lambda a, b, c: a[0] + b[0] + c[0]
print(concat_strings("World", "Wide", "Web"))
Как мы видим, лямбда-выражения проще и читабельнее, чем обычные функции. Но у этой простоты есть ограничение.
Лямбда не может иметь многострочное тело функции. Это означает, что наше выражение должно быть чем-то, что можно записать в одну строку.
Следовательно, лямбда-выражения идеально подходят для коротких однострочных функций.
Мы также можем использовать условные операторы в лямбда-выражениях:
my_func = lambda num: "High" if num > 50 else "Low"
print(my_func(60))
При использовании условных операторов в лямбда-выражениях необходима пара if-else. Оба случая должны быть покрыты, иначе лямбда выдаст ошибку:
my_func = lambda num: "High" if num > 50
Указанный выше код вернет ошибку