Lambda - функція

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)