Шта су Ламбда функције и како их користити?



Научите Питхон ламбда функције заједно са разликом између нормалних функција и ламбда функција и како се оне могу користити у филтеру (), мапи (), смањењу ().

Име је конвенција која се користи за позивање или обраћање било ком ентитету. Готово све око нас има име. У складу са тим иде и свет програмирања. Али да ли је неопходно именовати све? Или можете имати нешто што је само „анонимно“? Одговор је да. ' пружа Ламбда функције, познате и као анонимне функције које су у ствари безимене. Па кренимо даље да бисмо сазнали о овим „анонимним мистеријама“ Питхона, у следећем низу.

Па почнимо :)





Зашто користити Питхон Ламбда функције?


Главна сврха анонимних функција долази у слику када вам је потребна нека функција само једном. Могу се створити где год су потребни. Из тог разлога, Питхон Ламбда функције познате су и као функције бацања које се користе заједно са другим унапред дефинисаним функцијама као што су филтер (), мап () итд. Ове функције помажу у смањењу броја линија вашег кода у поређењу са нормално .

Да бисмо то доказали, идемо даље и сазнајмо више о Питхон Ламбда функцијама.



Шта су Питхон Ламбда функције?


Питхон Ламбда функције су функције које немају никакво име. Познате су и као анонимне или безимене функције. Реч „ламбда“ није име, већ је кључна реч. Ова кључна реч одређује да је функција која следи анонимна.

Сад кад сте свесни на шта се односе ове анонимне функције, идемо даље да видимо како пишете ове Питхон Ламбда функције.

Како написати Ламбда функције на Питхон-у?

Ламбда функција креира се помоћу ламбда оператора и њена синтакса је следећа:



СИНТАКСА:

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

Питхон ламбда функција може имати било који број аргумената, али је потребно само један израз. Улази или аргументи могу почети од 0 и ићи до било које границе. Као и било које друге функције, сасвим је у реду имати ламбда функције без улаза. Због тога можете имати ламбда функције у било ком од следећих формата:

ПРИМЕР:

ламбда: „Наведите сврху“

Овде, ламбда функција не узима никакве аргументе.

ПРИМЕР:

ламбда аједан: „Наведите употребу аједан'

Овде ламбда узима један улаз који је аједан.

шта су догађаји у јавасцрипту

Слично томе, можете имати ламбда аједан, до2, до3..дон.

Узмимо неколико примера да то демонстрирамо:

ПРИМЕР 1:

а = ламбда к: к * к принт (а (3))

ИЗЛАЗ: 9

ПРИМЕР 2:

а = ламбда к, и: к * и принт (а (3,7))

ИЗЛАЗ: двадесет један

Као што видите, овде сам узео два примера. Први пример користи ламбда функцију са само једним изразом, док други пример има два аргумента која су јој прослеђена. Имајте на уму да обе функције имају један израз иза којег следе аргументи. Стога се ламбда функције не могу користити тамо где су вам потребни изрази са више линија.

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

Како анонимне функције смањују величину кода?

Пре упоређивања количине захтеваног кода, прво запишите синтаксу и упоредите је са претходно описаном ламбда функцијом.

Свака нормална функција у Питхону дефинише се помоћу а деф кључна реч на следећи начин:

СИНТАКСА:

деф фунцтион_наме (параметри):
изјава (е)

Као што видите, количина кода потребна за ламбда функцију је прилично мања од количине нормалних функција.

Препишимо пример који смо узели раније користећи сада нормалне функције.

ПРИМЕР:

деф ми_фунц (к): врати к * к принт (ми_фунц (3))

ИЗЛАЗ: 9

Као што видите, у горњем примеру, потребан нам је ретурн израз унутар ми_фунц да бисмо проценили вредност квадрата 3. Супротно томе, ламбда функција не користи ову ретурн наредбу, већ тело анонимне функције је записано у истом реду као и сама функција, након симбола двотачке. Стога је величина функције мања од величине моје_фунц.

Међутим, ламбда функције у горњим примерима се позивају помоћу неких других а. То се ради зато што су ове функције безимене и зато захтевају да се позове неко име. Али, ова чињеница може изгледати збуњујуће због чега користити такве безимене функције када треба да им доделите неко друго име да бисте их позвали? И наравно, након додељивања имена а мојој функцији, више не остаје без имена! Јел тако?

То је легитимно питање, али поента је у томе што ово није прави начин коришћења ових анонимних функција.

Анонимне функције се најбоље користе у оквиру других функције вишег реда који или користе неку функцију као аргумент или враћају функцију као излаз. Да бисмо то демонстрирали, пређимо сада на следећу тему.

Питхон Ламбда функције у оквиру кориснички дефинисаних функција:

Као што је горе поменуто, ламбда функције се користе у оквиру осталих функција да би се означила најбоља предност.

шта је кључна грешка

Следећи пример се састоји од нев_фунц који је нормална питхон функција која узима један аргумент к. Овај аргумент се затим додаје неком непознатом аргументу и који се испоручује преко ламбда функције.

ПРИМЕР:

деф нев_фунц (к): ретурн (ламбда и: к + и) т = нев_фунц (3) у = нев_фунц (2) принт (т (3)) принт (у (3))

ИЗЛАЗ:

6
5
Као што видите, у горњем примеру се позива ламбда функција која је присутна у оквиру нев_фунц кад год користимо нев_фунц (). Сваки пут можемо аргументима проследити засебне вредности.

Сад кад сте видели како се користе анонимне функције у функцијама вишег реда, идемо напред да бисмо разумели једну од његових најпопуларнијих употреба која се налази у методама филтер (), мап () и редуце ().

Како користити анонимне функције у филтеру (), мапи () и смањити ():

Анонимне функције у филтер ():

филтер ():

Метода филтер () користи се за филтрирање задатих итерабила (спискова, скупова итд.) Уз помоћ друге функције, прослеђене као аргумент, да би се тестирали сви елементи да ли су тачни или нетачни.

Синтакса ове функције је:

СИНТАКСА:

филтер (функција, итерабилан)

Сада размотрите следећи пример:

ПРИМЕР:

ми_лист = [2,3,4,5,6,7,8] нев_лист = лист (филтер (ламбда а: (а / 3 == 2), ми_лист)) испис (нев_лист)

ИЗЛАЗ: [6]

Овде је ми_лист листа поновљивих вредности која се прослеђује функцији филтера. Ова функција користи ламбда функцију да провери да ли постоје неке вредности на листи, које ће се изједначити са 2 када се поделе са 3. Излаз се састоји од листе која задовољава израз присутан у анонимној функцији.

Мапа():

Функција мап () у Питхону је функција која примењује дату функцију на све итерабле и враћа нову листу.

СИНТАКСА:

мапа (функција, итерабилна)

Узмимо пример за демонстрацију употребе ламбда функција у оквиру функције мап ():

ПРИМЕР:

ми_лист = [2,3,4,5,6,7,8] нев_лист = лист (мапа (ламбда а: (а / 3! = 2), ли)) испис (нев_лист)

ИЗЛАЗ:

[Тачно, Тачно, Тачно, Тачно, Нетачно, Тачно, Тачно]

Горњи излаз показује да, кад год вредност итераблеа није једнака 2 када се подели са 3, добијени резултат треба да буде Тачно. Дакле, за све елементе на ми_лист враћа труе осим вредности 6 када се услов промени у Фалсе.

смањи ():

Функција редуце () користи се за примену неке друге функције на листу елемената који јој се прослеђују као параметар и на крају враћа једну вредност.

Синтакса ове функције је следећа:

јава како клонирати објекат

СИНТАКСА:

смањити (функција, редослед)

ПРИМЕР:

из фунцтоолс увоза смањити смањити (ламбда а, б: а + б, [23,21,45,98])

Горњи пример је приказан на следећој слици:

редуце-питхон ламбда-едурека

ИЗЛАЗ: 187

Резултат јасно показује да су сви елементи листе додавао непрекидно за враћање коначног резултата.

Овим смо завршили овај чланак о „Питхон Ламбда“. Надам се да вам је јасно са свим оним што је са вама подељено. Обавезно вежбајте што је више могуће и вратите своје искуство.

Имате питање за нас? Молимо вас да га помињете у одељку за коментаре овог блога „Питхон Ламбда“ и јавићемо вам се што је пре могуће.

Да бисте стекли детаљно знање о Питхону, заједно са разним апликацијама, можете се пријавити за уживо са подршком 24/7 и доживотним приступом.