Перейти к основному содержимому

Анонимная функция (лямбда-выражение)

В Python лямбда-выражение позволяет создавать анонимные функции - функции, которые не привязаны к имени.

В анонимной функции:

  • может содержаться только одно выражение
  • могут передаваться сколько угодно аргументов

Стандартная функция:


def sum_arg(a, b): return a + b

sum_arg(1, 2)
# 3

Аналогичная анонимная функция, или лямбда-функция:


sum_arg = lambda a, b: a + b

sum_arg(1, 2)
# 3

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

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

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


In [5]: list_of_tuples = [('IT_VLAN', 320),
...: ('Mngmt_VLAN', 99),
...: ('User_VLAN', 1010),
...: ('DB_VLAN', 11)]


In [6]: sorted(list_of_tuples, key=lambda x: x[1])
Out[6]: [('DB_VLAN', 11), ('Mngmt_VLAN', 99), ('IT_VLAN', 320), ('User_VLAN', 1010)]

Также лямбда-функция пригодится в функциях map и filter, которые будут рассматриваться в следующих разделах.