Использование lambda-выражений

С помощью lambda-выражений создают анонимные функции. Хотя у таких функций нет имен-идентификаторов, lambda-выражение может быть присвоено переменной также, как любой другой объект Python.

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

Использование на месте. Во вторых скобках передаются аргументы для функции:

>>> f = (lambda a, b: a + b) (10, 5)
>>> f
15

Связывание lambda-функции с переменной:

>>> f = lambda a, b: a + b
>>> f
<function <lambda> at 0x7fdd74831bf8>
>>> f(10, 5)
15
>>> f(-3, -1)
-4

Список lambda-выражений. В результате получается список действий, выполняемых по требованию.

a3 = [(lambda x,y: x+y),(lambda x,y: x-y),(lambda x,y: x*y),(lambda x,y: x/y)]
b = a3[0](5, 12)

Словарь, содержащий lambda-функции:

a4 = {'pos':lambda x: x-1, 'neg':lambda x: abs(x)-1, 'zero':lambda x: x}
b = [-3, 10, 0, 1]
for i in b:
    if i < 0:
        print(a4['neg'](i))
    elif i > 0:
        print(a4['pos'](i))
    else:
        print(a4['zero'](i))

Лямбда-функции нередко используются в качестве аргумента параметра key метода sort() или функции sorted().

>>> d = {'a': 10, 'b': 15, 'c': 4}
>>> list_d = list(d.items())
>>> list_d
[('a', 10), ('b', 15), ('c', 4)]
>>> list_d.sort(key=lambda i: i[1])
>>> list_d
[('c', 4), ('a', 10), ('b', 15)]