Какое использование лямбда в Python?

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

python lambda function

В 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

Источник: http://net-informations.com/python/iq/lambda.htm

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector