Лямбда-функция в Python
Python lambdas - это небольшие, анонимные, суб-синтаксические функции, которые более ограничены, но короче, чем обычные функции Python.
В этой статье мы увидим все о лямбде. Мы обсудим и постараемся ответить на следующий вопрос о лямбде:
Откуда появилась лямбда
Что такое лямбда-функция
Как использовать лямбда-функцию
Когда следует избегать лямбда-функции
Альтернативы лямбда
Лямбда - это концепция не только в Python, она используется в других языках программирования, таких как Java, C #, C ++ и т. д. Концепция лямбда в языках программирования пришла из вычислительной математики.
Откуда появилась лямбда
История лямбда началась еще в 30-х годах прошлого века. Алонзо Черч, наиболее известный своим лямбда-исчислением, тезисом Черча – Тьюринга, был американским математиком и логиком, формализовавшим лямбда-исчисление. Функциональные языки берут свое начало в математической логике и лямбда-исчислении, в то время как ключевые языки программирования используют модель вычислений на основе состояний, разработанную Аланом Тьюрингом. Две вычислительные модели, лямбда-исчисление и машины Тьюринга, можно преобразовать в одну. Это сходство известно как гипотеза Черча-Тьюринга.
Функциональные языки, такие как Haskell и Lisp, наследуют лямбда-исчисление, но такие языки, как Python или C, наследуют императивное программирование.
Первоначально Python не был функциональным языком, но на более поздних этапах он принимает несколько функциональных концепций.
Что такое лямбда-функция
Лямбда-функции - это анонимные функции в Python. Лямбда-функции похожи на обычные функции. Разница между обычной функцией и лямбда-функцией заключается в том, что они могут быть определены без имени, но обычные функции определяются с помощью ключевого слова def.
Ключевое слово lambda используется для определения анонимной или лямбда-функции.
Если мы сравним лямбда-функцию и обычную функцию, то,
Лямбда - функция может принимать любое число аргументов, но может иметь только одно выражение, в то время как обычная функция имеет точное количество аргументов, которые мы объявляем в момент определения.
Лямбда-функция - это однострочные функция. Ее тело содержит выражение в той же строке, в которой оно определено. В обычных функциях, функции содержат блоки тела, в которых определены для выполнения некоторые операторы.
Поскольку лямбда - это однострочная функция, ее можно вызвать мгновенно, но обычная функция должна вызывать сама себя и требовать времени для вызова.
x = lambda x,y : x * y
print(x(3,4))
x = ( lambda x,y : x*y) (2,3)
print(x)
В приведенном выше коде показана лямбда-функция, которая дает произведение двух переменных x и y. В приведенном выше примере x - это переменная, которая будет хранить возвращаемое значение лямбда-выражения.
Части лямбда-выражения.
Ключевое слово - лямбда.
Аргументы - x и y.
Выражение - x * y
Мы можем передать аргументы функции, заключив функцию и ее аргумент в круглые скобки:
Ниже приведен пример передачи аргументов в одной строке.
x = ( lambda x,y : x*y) (2,3)
print(x)
Вы также можете написать лямбду без имени переменной. Итак, мы поняли, что лямбда-функцию можно писать без имени и переменной.
Как использовать лямбда-функцию
До сих пор я излогал теоритические сведения о лямбда, поэтому мы разберемся, как использовать лямбда, с помощью примеров.
Пример 1 Напишите программу для вычисления экспоненты с помощью лямбда-функции.
Чтобы решить приведенный выше пример, я создал очень красивую визуализацию, чтобы понять процесс. Вы можете решить это таким образом:
Сначала я определяю лямбда-выражение для вычисления экспоненты.
Передаю это выражение лямбда-функции, представленной квадратным прямоугольником.
Лямбда-функция представлена прямоугольником. Она даст вам результат после выполнения расчета.
Код ниже.
Exp = (lambda x,y : x**y) (4,4)
print(Exp)
Когда следует избегать лямбда-функции
Итак, нам нужно избегать лямбда для простых задач и понимать использование лямбда.
Когда мы использовали лямбда-функцию, мы не использовали имя функции, и не было необходимости явно вызывать лямбда-функцию, поэтому лямбда называется анонимной функцией.
Для обычной функции мы определяем имя функции print_line, и там также есть тело, но в случае лямбда-функции тела не было. Это была одинарная линия.
Вот некоторые моменты против использования лямбда-функции в Python:
Читаемость кода
Заставлять мыслить функционально
Странный синтаксис
Загадочный стиль
Альтернативы лямбда
Понимание списка.
Генераторы.
Понимание списков - лучшая альтернатива лямбда. В некоторых случаях лямбда-выражение используется с функциями map (), reduce () и filter (), но то же самое может быть выполнено с пониманием списка вместе с циклом for.
Мой канал по python в тг по Python: https://t.me/python_scrypt (обзор библиотек, шпаргалки, вопросы с собесов)
Ставь + если полезно!
Программирование на python
638 постов11.8K подписчика
Правила сообщества
Публиковать могут пользователи с любым рейтингом. Однако!
Приветствуется:
• уважение к читателям и авторам
• конструктивность комментариев
• простота и информативность повествования
• тег python2 или python3, если актуально
• код публиковать в виде цитаты, либо ссылкой на специализированный сайт
Не рекомендуется:
• допускать оскорбления и провокации
• распространять вредоносное ПО
• просить решить вашу полноценную задачу за вас
• нарушать правила Пикабу