Рубрики
Без рубрики

Python Anonymous / Lambda Функции

Анонимная функция Python или функция лямбда – это безымянные функции, которые выполняют простые операции и уменьшают строки кода. Читать далее.

Автор оригинала: Pankaj Kumar.

Добро пожаловать в Учебное пособие на анонимное функцию Python. В предыдущем руководстве мы узнали о рекурсии Python.

Каковы функции Python Anonymous/Lambda?

В Python функция лямбда или более широко известная анонимная функция – это функция, определенная без имени.

Причина, по которой анонимные функции также называются функциями лямбда, заключается в том, что они определены с использованием ключевого слова lambda.

Мы назначаем функцию Lambda для переменной, которая становится объектом функции. Один и тот же объект может быть использован для вызова функции, указав аргументы в качестве обычной функции.

По сути, переменная становится названием анонимной функции, которая будет использоваться в программе.

Использование анонимных функций в Python

Теперь, когда мы знаем основы анонимных функций, давайте рассмотрим, как поставить эти функции для практического использования

Основной синтаксис анонимных/ламбдских функций

lambda arguments: expression

Если вы посмотрите на синтаксис выше, вы заметите, что функции лямбда позволяют несколько аргументов, а единое выражение. Вы можете указать аргументы в запятой отделенной моды.

Написание вашей первой функции лямбда

Я полагал самый простой способ объяснить вам функции лямбда для вас со сравнениями. Если вы уже знаете, как определить нормальную функцию, у вас будет гораздо лучшее понимание этого раздела.

Посмотрите на пример ниже, где я создал функцию, чтобы вернуть сумму двух аргументов.

def sum ( a, b ):
        return a+b

print (sum(1, 2))
print (sum(3, 5))

Легкий? Как насчет мы преобразуем это в функцию анонимных/лямбда?

sum = lambda a,b: (a+b)

print (sum(1,2))
print (sum(3,5))

Как видите, мы сократили количество строк в нашем коде здесь. Однако одно следует отметить, что функции лямбда могут служить хорошо для простых операций.

Но в ближайшее время вы введете более сложные операции, вы жертвуете читаемостью вашего кода с этими функциями.

Примеры анонимных функций в Python

Теперь мы увидим некоторое распространенное использование лямбда. Используя карта () и Фильтр () Функции вместе с анонимной функцией мы изменим элементы в списке Python.

В этом случае мы увеличиваем все элементы, содержащиеся в списке по номеру, указанному при запросе пользовательского ввода. В приведенном ниже примере я использовал функцию лямбда вместе с MAP () методом.

#initial list
l = [1,2,3,4,5,6,7,8]

#print the initial list
print("The initial list is: ")
print(l)

#choose n
n = int(input('Enter the value of n: '))

#increment all the values of the list by using map with help of lambda
l = list(map(lambda x: x+n , l))

#print the changed list
print("The changed list is: ")
print(l)

Выход будет

Точно так же, если мы хотим хранить общие элементы двух списков в новый список, мы можем использовать функцию фильтра (). Чтобы проверить, находится ли элемент в List2, мы использовали функцию лямбда. Пример код приведен ниже

#initialize list1
list1 = [1,2,3,4,5,6,7,8]

#print list1
print("List1:", end = ' ')
print(list1)

#intialize list2 for select numbers
list2 = [2,3,5,9,12,14]

#print list2
print("List2:", end = ' ')
print(list2)

'''
compare using lambda function if the value is in list2, if yes then filer the result and assign to list3
'''
list3 = list(filter(lambda x: x in list2 , list1))

#print the changed list
print"List3 (List1 intersect List2 ):", end=' ')
print(list3)


Выход вышеуказанной программы будет

Зачем использовать анонимные функции вместо обычной функции в Python?

Хотя легко заменить анонимную функцию/лямбда в Python с регулярной функцией, мы не можем отказаться от них в качестве программирования трюка.

Для одного анонимные функции Python особенно полезны, когда у вас есть функция, которая принимает другую функцию в качестве аргумента.

В таких случаях гораздо проще передавать одноквартирующую функцию лямбда после назначения ее переменной.

Другим важным фактором является то, как функции Lambda занимают меньшее количество ресурсов, чем именованные функции. Если вам нужно создать функцию, используемую в рамках определенного объема и нигде в программе, она не имеет смысла создавать индивидуальную функцию для того же.

Функции лямбда могут получить работу, выполненную, не добавляя к использованию ресурсов в этом случае.

Что такое выражение в функции Python Lambda?

Основное различие между утверждением и выражением является их закрытие.

Заявление выходит без возврата. Выражение вернет хотя бы одно значение на выходе.

Думайте о заявлениях, такими как Печать () Где функция выходит в ближайшее время после печати указанной строки.

Выражения, с другой стороны, похожи на добавление, вычитание и т. Д., Где вывод является вычисленным значением.

Заключение

Итак, вот и все о анонимной функции Python. Надеюсь, что, анонимная функция Python сейчас ясно. Для любого дополнительного запроса не стесняйтесь использовать окно комментариев. Удачи!