№17 Lambda-фунция / Уроки по Python для начинающих

5600

Предыдущий урок: Функции в Python

Лямбда-функция — это небольшая анонимная функция. Она может принимать любое количество аргументов, но в то же время иметь только одно выражение.

Синтаксис

lambda аргументы : выражение
После выполнения выражения — возвращается результат. Лямбда-функции могут принимать любое количество аргументов.
lambda умножает аргумент 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))

Вывод:

22

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

Тест на знание python

Что выведет этот код?
№17 Lambda-фунция / Уроки по Python для начинающих
Какой будет результат выполнения этого кода?
№17 Lambda-фунция / Уроки по Python для начинающих
Что выведет этот код?
№17 Lambda-фунция / Уроки по Python для начинающих
Какие операторы можно использовать со строками?
Какой будет результат выполнения этого кода?
№17 Lambda-фунция / Уроки по Python для начинающих
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))
print(mytripler(11))

Вывод:

22
33

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

Далее: Массивы