Python Glossary English

все Python 3Функциипонятие

lambda

lambda

Анонимная функция — выражение, возвращающее функцию. Только одно выражение.

Синтаксис

lambda параметры: выражение

Главная ловушка — позднее связывание: lambda, созданная в цикле, запоминает саму переменную, а не её текущее значение, поэтому все такие функции потом увидят её последнее значение. PEP 8 не советует присваивать lambda имени (sq = lambda...) — для именованной функции берите def; lambda хороша именно как одноразовый аргумент для key=, map() или filter().

Примеры

sq = lambda x: x ** 2
print(sq(4))  # → 16
add = lambda a, b: a + b
print(add(3, 5))  # → 8
words = ['banana', 'apple', 'cherry']
words.sort(key=lambda w: len(w))
print(words)  # → ['apple', 'banana', 'cherry']
nums = [1, -2, 3, -4]
pos = list(filter(lambda x: x > 0, nums))
print(pos)  # → [1, 3]
doubled = list(map(lambda x: x * 2, [1,2,3]))
print(doubled)  # → [2, 4, 6]
pairs = [(1,'b'),(2,'a'),(3,'c')]
pairs.sort(key=lambda p: p[1])
print(pairs)  # → [(2,'a'),(1,'b'),(3,'c')]
# Вложенная lambda (каррирование)
mul = lambda x: lambda y: x * y
double = mul(2)
print(double(5))  # → 10

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности