Лямбда-функция - это анонимная функция. Это то же самое, что def в обычной функции Python, но не требует имени.
Лямбда-функция - это анонимная функция. Это то же самое, что def в обычной функции Python, но не требует имени.
4 причины использовать лямбда-функцию
- Уменьшите количество строк кода.
- Лямбда - это временная функция на короткий период времени.
- Обычно используется внутри другой функции, такой как filter, map и reduce. или внутрь. применить в пандах.
- Вы можете определить и вызвать его сразу в конце определения. Этого нельзя сделать с помощью функций def.
В чем разница между def и lambda?
Лямбда обычно используется как анонимная функция внутри другой функции. Она может принимать любое количество аргументов, но может иметь только одно выражение.
лямбда - это выражение, а не утверждение. а тело лямбды - это отдельное выражение, а не блок операторов.
С другой стороны, выражение def создает функцию, которая будет вызвана позже, но возвращает функцию, а не присваивает ее имени. Вот почему иногда известны лямбды. как анонимные (т. е. безымянные) функции.
Как написать лямбда-выражение?
лямбда аргумент1, аргумент2,… аргументN : выражение с использованием аргументов.
Примечание. Обычно в синтаксисе функции def отсутствует оператор возврата.
Пример 1
С def
>>> def func(x, y, z): return x + y + z >>> func(1, 3, 4) 8
С лямбдой
>>> func= lambda x, y, z: x + y + z >>> func(1, 3, 4) 8
Пример 2
# calculate squares using lambda squares = lambda x: x*x print(‘Using lambda: ‘, squares(5)) 25
Лямбды могут иметь 0 выражений
Лямбды могут принимать 0 или 1 выражение не более!
Пример 3
x = lambda : “Test Hello World!” print(x()) Test Hello World!
Лямбды тоже могут быть вложенными
Я бы хотел избежать вложенных лямбд. За счет удобочитаемости.
Пример 4
>>> action = (lambda x: (lambda y: x + y)) >>> act = action(99) >>> act(3) 102 >>> ((lambda x: (lambda y: x + y))(99))(4) 103
Заключение
Лямбда - это практичная сокращенная функция, которая позволяет встроить определение функции в одну строку кода. Вместо этого вы всегда можете использовать def, и это следует делать, если ваша функция требует мощности полных операторов, которые лямбда-выражение не может легко предоставить, но они, как правило, являются более простыми конструкциями кодирования в сценариях, где вам просто нужно встроить небольшие фрагменты исполняемого кода, встроенные в место, которое будет использоваться.
Ссылка
- Изучение Python: мощное объектно-ориентированное программирование, Марк Лутц
2. W3schools, https://www.w3schools.com/python/python_lambda.asp