lambda-функція - це невелика анонімна функція.
lambda-функція може приймати будь-яку кількість аргументів, але може мати лише один вираз.
Синтаксис
lambda arguments : expression
Вираз виконується, а результат повертається:
Приклад
Додайте 10 до аргументу aта поверніть результат:
x = lambda a : a + 10
print(x(5)) -> 15
Лямбда-функції можуть приймати будь-яку кількість аргументів:
Приклад
Помножте аргумент aна аргумент bі поверніть результат:
x = lambda a, b : a * b
print(x(5, 6)) -> 30
Приклад
Підсумуйте аргумент a, bта cі поверніть результат:
x = lambda a, b, c : a + b + c
print(x(5, 6, 2))->13
Навіщо використовувати лямбда-функції?
Сила лямбди краще проявляється, коли ви використовуєте їх як анонімну функцію всередині іншої функції.
Скажімо, у вас є визначення функції, яке приймає один аргумент, і цей аргумент буде помножено на невідоме число:
def myfunc(n):
return lambda a : a * n
Використовуйте це визначення функції, щоб створити функцію, яка завжди подвоює номер, який ви надсилаєте:
Приклад
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
print(mydoubler(11))
Або використовуйте одне і те ж визначення функції, щоб створити функцію, яка завжди потроює номер, який ви надсилаєте:
Приклад
def myfunc(n):
return lambda a : a * n
mytripler = myfunc(3)
print(mytripler(11)) ->33
Або використовуйте одне і те ж визначення функції, щоб зробити обидві функції в одній програмі:
Приклад
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
mytripler = myfunc(3)
print(mydoubler(11)) ->22
print(mytripler(11)) ->33
#named function
def polynomial(x):
return x**2 + 5*x + 4
print(polynomial(-4))
#lambda
print((lambda x: x**2 + 5*x + 4) (-4))
salaries = [2000, 1800, 3100, 4400, 1500]
bonus = int(input())
print(list(map(lambda x: x+bonus ,salaries)))
nums = [11, 22, 33, 44, 55]
res = list(filter(lambda x: x%2==0, nums))
print(res)
nums = [11, 22, 33, 44, 55]
res = list(filter(lambda x: x%2==0, nums))
print(res)