Считайте лямбда-функцию небольшой функцией без имени.
Она может принимать сколько угодно аргументов, но её тело ограничено одним выражением.
Синтаксис
Python вычисляет выражение и возвращает результат.
Пример
Верните аргумент a плюс 10:
Вывод: полная программа на Python
x = lambda a : a + 10
print(x(5))
Пример
Верните произведение аргументов a и b:
Вывод: полная программа на Python
x = lambda a, b : a * b
print(x(5, 6))
Пример
Верните сумму аргументов a, b и c:
Вывод: полная программа на Python
x = lambda a, b, c : a + b + c
print(x(5, 6, 2))
lambda arguments : expression
Зачем использовать лямбда-функции?
Лямбда-функции лучше всего проявляют себя, когда используются как анонимная функция внутри другой функции.
Представьте функцию с одним параметром, где возвращаемая ею лямбда-функция умножает на этот параметр число, которое вы ещё не передали.
Пример
Вывод: полная программа на Python
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
print(mydoubler(11))
Пример
Вывод: полная программа на Python
def myfunc(n):
return lambda a : a * n
mytripler = myfunc(3)
print(mytripler(11))
Пример
Вывод: полная программа на Python
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
mytripler = myfunc(3)
print(mydoubler(11))
print(mytripler(11))
Лямбда-функции со встроенными функциями
Вы часто будете видеть лямбда-функции, передаваемые во встроенные функции, такие как map(), filter() и sorted().
Пример
Умножьте каждое число в списке на два:
Вывод: полная программа на Python
numbers = [1, 2, 3, 4, 5]
doubled = list(map(lambda x: x * 2, numbers))
print(doubled)
Пример
Оставьте в списке только нечётные числа:
Вывод: полная программа на Python
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
odd_numbers = list(filter(lambda x: x % 2 != 0, numbers))
print(odd_numbers)
Пример
Упорядочьте список кортежей по второму элементу:
Вывод: полная программа на Python
students = [("Emil", 25), ("Tobias", 22), ("Linus", 28)]
sorted_students = sorted(students, key=lambda x: x[1])
print(sorted_students)
Пример
Упорядочьте строки от самой короткой к самой длинной:
Вывод: полная программа на Python
words = ["apple", "pie", "banana", "cherry"]
sorted_words = sorted(words, key=lambda x: len(x))
print(sorted_words)