Skip to content

Анонимные lambda функции

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

Синтаксис

Python
lambda аргумент1, аргумент2, ...: <выражение>

Замена обычной функции

Python
>>> def edit_story(words, func):
        for word in words:
        print(func(word))

>>> def enliven(word):  # функция, которая будет заменена
        return word.capitalize() + '!'

>>> stairs = ['thud', 'meow', 'thud', 'hiss']
>>> edit_story(stairs, enliven)
Thud!
Meow!
Thud!
Hiss!

# lambda:
>>> edit_story(stairs, lambda word: word.capitalize() + '!')
Thud!
Meow!
Thud!
Hiss!

Лямбда-выражение имеет ноль или больше аргументов, разделенных запятой, после которых идет двоеточие (:) и определение функции.
Этому лямбда-выражению передается (in this case) один аргумент word. Для вызова лямбда-выражения не используются круглые скобки.
Зачастую использование реальных функций, таких как enliven(), гораздо понятнее, чем использование лямбд. Лямбды наиболее полезны в случаях, когда вам нужно определить множество мелких функций и запомнить все их имена.

Еще пару простых примеров:

Python
>>> x = lambda x, y: x * y
>>> x(3, 4)
12

>>> print((lambda x, y: x * y)(3,4))
12

>>> print((lambda: 100)())  # silly пример
100


Соус: Книга "Простой Python" --> Глава 9. "Функции" --> "Анонимные функции: лямбда-выражения"
[[Функции в python]]

python