Рубрики
Без рубрики

Python лямбда

Автор оригинала: Python Examples.

Python Lambda функция

Функция Python Lambda – это однострочная функция, тело которого является просто выражением и может принимать несколько аргументов.

В этом уроке мы сначала узнаем основы функции лямбда и во-вторых, некоторые интересные хаки, которые мы можем сделать с этими лямбдами.

Синтаксис функции лямбда

Ниже приведен синтаксис функции лямбда.

lambda arguments : expression

Вы можете назначить эту функцию лямбда в переменной. Что-то вроде в следующем фрагменте кода.

x = lambda arguments : expression

И вы можете вызвать функцию лямбда с именем переменной x. Ниже приведен пример фрагментации кода для вызова функции лямбда.

result = x(arguments)

Аргументы передаются как правило, как аргументы обычной функции, но имена функции, являющаяся переменной, мы присваиваем эту функцию лямбда.

Когда вы вызываете функцию лямбда, выражение оценивается, и возвращается оцененное значение. Итак, у вас есть аргументы, тело и оператор возврата, все в линейке. Так очень лаконично.

Пример 1: Python Lambda Функция

Ниже приводится простая функция Lambda, которая принимает номер и возвращает его квадрат.

Python Program

#lambda function
square = lambda a: a*a
#call lambda function
result = square(6)
print(result)

Выход

36

Пример 2: Функция Python Lambda – несколько аргументов

Мы уже упоминали, что функция Python Lambda может принимать несколько аргументов. В следующем примере мы определяем функцию лямбда с двумя аргументами, скажем А и B и мы будем умножить А и B Отказ

Python Program

#lambda function
mul = lambda a,b: a*b
#call lambda function
result = mul(5,3)
print(result)

Выход

15

Пример 3: Python Lambda Функция без аргументов

Ага! Вы можете определить функцию лямбда без аргументов вообще. Если бы было требование, чтобы вы создали функцию лямбда без аргументов, вы можете.

В следующем примере мы определяем функцию лямбда без аргументов, а возвращается 6 когда вызывается.

Python Program

#lambda function
six = lambda : 6
#call lambda function
result = six()
print(result)

Выход

6

Рекурсивная функция лямбда

Вы можете разработать функцию рекурсии с помощью функции лямбда. Согласно синтаксису функции лямбда Python, все, что вам нужно, это выражение, которое оценивает одно значение для возврата. Итак, если вы можете построить рекурсивную функцию, удовлетворяющую этому критерию, у вас есть рекурсивная функция лямбда.

В следующем примере мы определили функцию лямбда, которые могут рассчитать факториал данного числа, используя рекурсию.

Python Program

#recursive lambda function
factorial = lambda a: a*factorial(a-1) if (a>1) else 1
#call lambda function
result = factorial(5)
print(result)

Выход

120

Вернуть лямбда Функция

Функция лямбда как переменной. Итак, вы можете вернуть ламбда функцию из другой функции.

Python Program

import math
#function returning lambda function
def myfunc(n):
  return lambda a : math.pow(a, n)

#lambda functions
square = myfunc(2) #square = lambda a : math.pow(a, 2)
cube = myfunc(3) #cube =  = lambda a : math.pow(a, 3)
squareroot = myfunc(0.5) #squareroot = lambda a : math.pow(a, 0.5) 

print(square(3))
print(cube(3))
print(squareroot(3))

Выход

9.0
27.0
1.7320508075688772

Резюме

Заключение этого учебника примеров Python, мы узнали, как определить функцию лямбда и конструктивно использовать его в своей программе с помощью примеров программ.