все 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Сообщить о неточности