Какое использование лямбда в Python?
Содержание
Лямбда, 11-я буква греческого алфавита, является символом длины волны. Лямбда исходит из исчисления Лямбды и относится к анонимным функциям программирования.
В Python Lambda является выражением. Тело Лямбды - это одно выражение, а не блок утверждений. Поскольку он ограничен выражением, лямбда является менее общей, чем def, вы можете только сжать столько логики в тело лямбда без использования таких утверждений, как if. Это не совсем то же самое, что и lambda в языках функционального программирования, но это очень мощная концепция, которая хорошо интегрирована в Python и часто используется в сочетании с типичными функциональными концепциями, такими как map(), filter() и reduce(). Кроме того, Lambda может использоваться везде, где требуются функциональные объекты.
Общий синтаксис лямбда-функции довольно прост:
lambda argument_list: expression
Список аргументов состоит из списка аргументов, разделенных запятыми, и выражение представляет собой арифметическое выражение с использованием этих аргументов.
Вот пример. Вы можете создать функцию обычным способом, используя def, например:
def square_root(x): return math.sqrt(x)
Использование лямбда:
square_root = lambda x: math.sqrt(x)
Пример
square_root = lambda x: x*x print(square_root(2))
Lambda позволяет вам писать функции быстрого выброса, не называя их. Он также обеспечивает хороший способ записи замыканий.
Пример
Найдите сумму двух чисел, используя лямбда
add = lambda x, y: x + y print(add(10,20))
Выход
30
Лямбда в условных выражениях:
result = lambda x: «Больше, чем 100», если x> 100 else «Меньше 100»,
печати (результат (99))
Выход
Smaller than 100
Пример карты, используя lambda
my_list = [1, 2, 3, 4, 5, 6] squared = map(lambda x: x**2, my_list) print(list(squared))
Выход
[1, 4, 9, 16, 25, 36]
Пример фильтра с использованием лямбда
my_list = [1, 3,5, 7, 9, 11, 13, 15] new_list = list(filter(lambda x: (x%3 == 0) , my_list)) print(new_list)
Выход
[3, 9, 15]
Уменьшить пример, используя lambda
from functools import reduce result = reduce((lambda x, y: x * y), [1, 2, 3, 4,5]) print(result)
Выход
120
Вычисление суммы чисел от 1 до 1000 с использованием лямбда
from functools import reduce total = reduce(lambda x, y: x+y, range(1,1001)) print(total)
Выход
500500