Какво представляват ламбда функциите и как да ги използвам?



Научете ламбда функциите на Python заедно с разликата между нормалните функции и ламбда функциите и как те могат да бъдат използвани във филтър (), карта (), намаляване ().

Името е конвенция, която се използва за препращане или адресиране към който и да е обект. Почти всичко около нас има име. Светът на програмирането също върви в съответствие с това. Но задължително ли е да назоваваме всичко? Или можете да имате нещо, което е просто „анонимно“? Отговорът е да. ' предоставя ламбда функции, известни също като анонимни функции, които всъщност са безименни. Така че нека продължим напред, за да научим за тези „анонимни мистерии“ на Python, в следната последователност.

Така че нека да започнем :)





Защо да използвам функциите на Python Lambda?


Основната цел на анонимните функции се появява, когато имате нужда от някаква функция само веднъж. Те могат да бъдат създадени навсякъде, където са необходими. Поради тази причина функциите на Python Lambda са известни също като изхвърлящи функции, които се използват заедно с други предварително дефинирани функции като filter (), map () и др. Тези функции помагат да се намали броят на редовете на вашия код в сравнение с нормално .

За да докажем това, нека продължим по-нататък и да научим за функциите на Python Lambda.



Какво представляват функциите на Python Lambda?


Функциите на Python Lambda са функции, които нямат никакво име. Те са известни също като анонимни или безименни функции. Думата „ламбда“ не е име, а е ключова дума. Тази ключова дума указва, че функцията, която следва, е анонимна.

След като вече сте наясно с какво се отнасят тези анонимни функции, нека продължим напред, за да видим как пишете тези Python Lambda функции.

Как да напиша Lambda функции в Python?

Ламбда функция се създава с помощта на ламбда оператора и нейният синтаксис е както следва:



СИНТАКСИС:

ламбда аргументи: израз

Python ламбда функция може да има произволен брой аргументи, но отнема само един израз. Входовете или аргументите могат да започват от 0 и да достигат до всякакви граници. Подобно на всички други функции, напълно е добре да имате ламбда функции без входове. Следователно можете да имате ламбда функции във всеки от следните формати:

ПРИМЕР:

ламбда: „Посочете целта“

Тук функцията ламбда не взема аргументи.

ПРИМЕР:

ламбда аедин: „Посочете използването на aедин'

Тук ламбда приема един вход, който е aедин.

свързан списъчен код в c

По същия начин можете да имате ламбда aедин, да се2, да се3..да сен.

Нека вземем няколко примера, за да демонстрираме това:

ПРИМЕР 1:

a = ламбда x: x * x печат (a (3))

ИЗХОД: 9

ПРИМЕР 2:

a = ламбда x, y: x * y печат (a (3,7))

ИЗХОД: двадесет и едно

Както можете да видите, тук взех два примера. Първият пример използва функцията ламбда само с един израз, докато вторият пример има два аргумента, предадени към нея. Моля, обърнете внимание, че и двете функции имат един израз, последван от аргументите. Следователно, ламбда функции не могат да се използват там, където се нуждаете от многоредови изрази.

От друга страна, нормалните функции на python могат да приемат произволен брой изрази в техните дефиниции на функции.

Как анонимните функции намаляват размера на кода?

Преди да сравним количеството необходим код, нека първо запишем синтаксиса на и я сравнете с тази на ламбда функциите, описани по-рано.

Всяка нормална функция в Python се дефинира с помощта на деф ключова дума, както следва:

СИНТАКСИС:

def функция_име (параметри):
изявления)

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

как да създам произволен низ в java -

Нека препишем примера, който взехме по-рано, използвайки сега нормални функции.

ПРИМЕР:

def my_func (x): връщане x * x print (my_func (3))

ИЗХОД: 9

Както можете да видите, в горния пример се нуждаем от оператор за връщане в my_func, за да изчислим стойността на квадрата на 3. Обратно, функцията ламбда не използва този оператор за връщане, а тялото на анонимната функция се записва в същия ред като самата функция, след символа на двоеточието. Следователно размерът на функцията е по-малък от този на my_func.

Въпреки това, ламбда функциите в горните примери се извикват с помощта на някои други а. Това се прави, защото тези функции са безименни и поради това изискват да бъде извикано някакво име. Но този факт може да изглежда объркващо защо да използваме такива безименни функции, когато всъщност трябва да зададете друго име, за да ги извикате? И разбира се, след като присвоих името a на моята функция, то вече не остава безименно! Нали?

Това е легитимен въпрос, но въпросът е, че това не е правилният начин за използване на тези анонимни функции.

Анонимните функции се използват най-добре в други функции от по-висок ред които или използват някаква функция като аргумент, или връщат функция като изход. За да демонстрираме това, нека сега преминем към следващата ни тема.

Функциите на Python Lambda в дефинирани от потребителя функции:

Както бе споменато по-горе, ламбда функциите се използват в рамките на други функции, за да отбележат най-доброто предимство.

Следващият пример се състои от new_func, който е нормална функция на python, която приема един аргумент x. След това този аргумент се добавя към някакъв неизвестен аргумент y, който се доставя чрез ламбда функцията.

ПРИМЕР:

def new_func (x): return (lambda y: x + y) t = new_func (3) u = new_func (2) print (t (3)) print (u (3))

ИЗХОД:

6
5
Както можете да видите, в горния пример се извиква функцията ламбда, която присъства в new_func, когато използваме new_func (). Всеки път можем да предадем отделни стойности на аргументите.

Сега, след като видяхте как да използвате анонимни функции в рамките на функции от по-висок ред, нека сега продължим напред, за да разберем едно от най-популярните му приложения, което е в методите filter (), map () и reduce ().

Как да използваме анонимни функции в filter (), map () и намаляване ():

Анонимни функции в филтър ():

филтър ():

Методът filter () се използва за филтриране на дадените итерации (списъци, набори и т.н.) с помощта на друга функция, предадена като аргумент, за да се тестват всички елементи за истина или не.

Синтаксисът на тази функция е:

СИНТАКСИС:

филтър (функция, итерируем)

Сега разгледайте следния пример:

ПРИМЕР:

получи дължина на масива js
my_list = [2,3,4,5,6,7,8] new_list = list (филтър (lambda a: (a / 3 == 2), my_list)) print (new_list)

ИЗХОД: [6]

Тук my_list е списък с повторяеми стойности, който се предава на функцията за филтриране. Тази функция използва функцията ламбда, за да провери дали в списъка има някакви стойности, които ще се равняват на 2, когато са разделени на 3. Изходът се състои от списък, който удовлетворява израза, присъстващ в анонимната функция.

карта ():

Функцията map () в Python е функция, която прилага дадена функция към всички итерации и връща нов списък.

СИНТАКСИС:

карта (функция, итерируема)

Нека вземем пример, за да демонстрираме използването на ламбда функциите в рамките на функцията map ():

ПРИМЕР:

my_list = [2,3,4,5,6,7,8] new_list = list (map (lambda a: (a / 3! = 2), li)) print (new_list)

ИЗХОД:

[True, True, True, True, False, True, True]

Горният изход показва, че когато стойността на итерабилите не е равна на 2, когато е разделена на 3, върнатият резултат трябва да е True. Следователно за всички елементи в my_list той връща true, с изключение на стойността 6, когато условието се промени на False.

намаляване ():

Функцията reduce () се използва за прилагане на друга функция към списък с елементи, които се предават като параметър към нея и накрая връща единична стойност.

Синтаксисът на тази функция е следният:

СИНТАКСИС:

намаляване (функция, последователност)

ПРИМЕР:

от functools внос намаление намаление (ламбда a, b: a + b, [23,21,45,98])

Горният пример е изобразен на следното изображение:

намаляване-python ламбда-edureka

ИЗХОД: 187

Резултатът ясно показва, че всички елементи от списъка са добавя се непрекъснато за връщане на крайния резултат.

С това стигаме до края на тази статия за „Python Lambda“. Надявам се, че сте наясно с всичко споделено с вас. Уверете се, че практикувате възможно най-много и връщате опита си.

Имате въпрос към нас? Моля, споменете го в раздела за коментари в този блог „Python Lambda“ и ние ще се свържем с вас възможно най-скоро.

За да получите задълбочени познания за Python заедно с различните му приложения, можете да се регистрирате за живо с 24/7 поддръжка и доживотен достъп.