Kaj so Lambda funkcije in kako jih uporabljati?



Naučite se lambda funkcij Python, skupaj z razliko med običajnimi funkcijami in lambda funkcijami ter kako jih je mogoče uporabiti v filter (), map (), reduce ().

Ime je dogovor, ki se uporablja za sklicevanje na katero koli entiteto ali naslov nanjo. Skoraj vse okoli nas ima ime. Temu ustreza tudi svet programiranja. Toda ali je treba vse poimenovati? Ali lahko imate nekaj, kar je samo 'anonimno'? Odgovor je, da. ' ponuja Lambda funkcije, znane tudi kot anonimne funkcije, ki so v resnici brezimne. Torej, pojdimo naprej, če želite spoznati te Pythonove 'anonimne skrivnosti' v naslednjem zaporedju.

Začnimo torej :)





Zakaj uporabljati funkcije Python Lambda?


Glavni namen anonimnih funkcij se prikaže, ko neko funkcijo potrebujete le enkrat. Ustvarjajo jih lahko, kjer koli so potrebni. Iz tega razloga so funkcije Python Lambda znane tudi kot funkcije metanja, ki se uporabljajo skupaj z drugimi vnaprej določenimi funkcijami, kot so filter (), map () itd. Te funkcije pomagajo zmanjšati število vrstic vaše kode v primerjavi z normalno .

Da bi to dokazali, pojdimo naprej in spoznajmo funkcije Python Lambda.



Kaj so funkcije Python Lambda?


Funkcije Python Lambda so funkcije, ki nimajo nobenega imena. Znane so tudi kot anonimne ali brezimne funkcije. Beseda 'lambda' ni ime, ampak je ključna beseda. Ta ključna beseda določa, da je funkcija, ki sledi, anonimna.

Zdaj, ko se zavedate, na kaj se nanašajo te anonimne funkcije, pojdimo naprej, da vidimo, kako pišete te funkcije Python Lambda.

Kako napisati Lambda funkcije v Python?

Lambda funkcija je ustvarjena z uporabo lambda operatorja in njena sintaksa je naslednja:



SINTAKSA:

lambda argumenti: izraz

Python lambda funkcija lahko ima poljubno število argumentov, vendar traja samo en izraz. Vhodi ali argumenti se lahko začnejo pri 0 in segajo do katere koli meje. Tako kot vse druge funkcije je tudi v tem primeru v redu, če imamo tudi lambda funkcije brez vhodov. Zato lahko imate funkcije lambda v katerem koli od naslednjih formatov:

PRIMER:

lambda: 'Navedite namen'

Tu funkcija lambda ne zajema nobenih argumentov.

PRIMER:

lambda aeno: “Navedite uporabo aeno'

Tukaj lambda vzame en vhod, ki jeeno.

keyerror: 'a'

Podobno lahko imate lambda aeno, do2., do3...don.

Vzemimo nekaj primerov, da to dokažemo:

PRIMER 1:

a = lambda x: x * x tisk (a (3))

IZHOD: 9.

PRIMER 2:

a = lambda x, y: x * y tisk (a (3,7))

IZHOD: enaindvajset

Kot lahko vidite, sem tukaj vzel dva primera. Prvi primer uporablja funkcijo lambda s samo enim izrazom, drugi primer pa ima dva argumenta. Upoštevajte, da imata obe funkciji en izraz, ki mu sledijo argumenti. Zato lambda funkcij ni mogoče uporabiti tam, kjer potrebujete večvrstične izraze.

Po drugi strani pa lahko običajne funkcije pythona sprejmejo poljubno število stavkov v svojih definicijah funkcij.

Kako anonimne funkcije zmanjšajo velikost kode?

Pred primerjavo količine zahtevane kode najprej zapišite sintakso in jo primerjajte s prej opisano funkcijo lambda.

Vsaka normalna funkcija v Pythonu je definirana z uporabo def ključna beseda, kot sledi:

SINTAKSA:

def ime_funkcije (parametri):
izjava (-e)

Kot lahko vidite, je količina kode, ki je potrebna za lambda funkcijo, precej manjša kot pri običajnih funkcijah.

Napišimo primer, ki smo ga prej vzeli z uporabo običajnih funkcij.

PRIMER:

def my_func (x): vrni x * x print (my_func (3))

IZHOD: 9.

Kot lahko vidite, v zgornjem primeru potrebujemo stavek return znotraj my_func, da ocenimo vrednost kvadrata 3. Nasprotno pa funkcija lambda ne uporablja tega stavka return, ampak telo anonimne funkcije je napisan v isti vrstici kot sama funkcija, za simbolom dvopičja. Zato je velikost funkcije manjša od velikosti moje_func.

Vendar se lambda funkcije v zgornjih primerih pokličejo z uporabo nekaterih drugih a. To se naredi, ker so te funkcije brez imen in zato zahtevajo klic nekega imena. Toda to dejstvo se morda zdi zmedeno, zakaj uporabljati takšne brezimne funkcije, ko jim morate dejansko dodeliti neko drugo ime? In seveda, ko moji funkciji dodelim ime a, ne ostane več brez imena! Prav?

kako nastaviti pot jave -

To je legitimno vprašanje, ampak bistvo je, da to ni pravi način uporabe teh anonimnih funkcij.

Anonimne funkcije je najbolje uporabiti znotraj drugih funkcije višjega reda ki funkcijo uporabijo kot argument ali vrnejo funkcijo kot izhod. Da bi to dokazali, pojdimo naprej k naši naslednji temi.

Python Lambda funkcije znotraj uporabniško določenih funkcij:

Kot omenjeno zgoraj, se lambda funkcije uporabljajo v drugih funkcijah, da označijo najboljšo prednost.

Naslednji primer je sestavljen iz new_func, ki je običajna python funkcija, ki sprejme en argument x. Ta argument se nato doda neznanemu argumentu y, ki je dobavljen prek lambda funkcije.

PRIMER:

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

IZHOD:

6.
5.
Kot lahko vidite, je v zgornjem primeru funkcija lambda, ki je prisotna v new_func, poklicana vsakič, ko uporabimo new_func (). Vsakič lahko argumentom posredujemo ločene vrednosti.

Zdaj, ko ste videli, kako uporabljati anonimne funkcije znotraj funkcij višjega reda, pojdimo naprej, da razumemo eno izmed njegovih najbolj priljubljenih načinov uporabe v metodah filter (), map () in reduce ().

Kako uporabljati anonimne funkcije znotraj filtra (), map () in zmanjševanja ():

Anonimne funkcije znotraj filter ():

filter ():

Metoda filter () se uporablja za filtriranje danih ponovitev (seznamov, nizov itd.) S pomočjo druge funkcije, podane kot argument, za preskušanje vseh elementov kot resničnih ali neresničnih.

Sintaksa te funkcije je:

SINTAKSA:

filter (funkcija, iterable)

Zdaj pa razmislite o naslednjem primeru:

kako napisati razred singleton v javi -

PRIMER:

my_list = [2,3,4,5,6,7,8] new_list = seznam (filter (lambda a: (a / 3 == 2), my_list)) print (new_list)

IZHOD: [6]

Tu je my_list seznam ponovljivih vrednosti, ki se posreduje funkciji filtra. Ta funkcija uporablja funkcijo lambda za preverjanje, ali so na seznamu vrednosti, ki bodo enake 2, če jih delimo s 3. Izhod je sestavljen iz seznama, ki ustreza izrazu, ki je prisoten v anonimni funkciji.

zemljevid():

Funkcija map () v Pythonu je funkcija, ki dano funkcijo uporabi za vse iterable in vrne nov seznam.

SINTAKSA:

zemljevid (funkcija, iterable)

Vzemimo primer za prikaz uporabe lambda funkcij znotraj funkcije map ():

PRIMER:

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

IZHOD:

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

Zgornji izhod kaže, da kadar koli vrednost ponovljivosti ni enaka 2, če je deljena s 3, mora biti vrnjeni rezultat True. Zato za vse elemente na my_list vrne true, razen vrednosti 6, ko se stanje spremeni v False.

zmanjšanje ():

Funkcija reduce () se uporablja za uporabo neke druge funkcije na seznamu elementov, ki so ji posredovani kot parameter in na koncu vrne eno vrednost.

Sintaksa te funkcije je naslednja:

SINTAKSA:

zmanjšanje (funkcija, zaporedje)

PRIMER:

od functools uvoz zmanjšaj zmanjšaj (lambda a, b: a + b, [23,21,45,98])

Zgornji primer je prikazan na naslednji sliki:

reduce-python lambda-edureka

IZHOD: 187

Rezultat jasno kaže, da so vsi elementi seznama dodaja neprestano za vrnitev končnega rezultata.

S tem smo zaključili ta članek o 'Python Lambda'. Upam, da ste na jasnem z vsem, kar ste delili z vami. Poskrbite, da boste čim več vadili in si povrnili izkušnje.

Imate vprašanje za nas? Prosimo, omenite ga v oddelku za komentarje tega spletnega dnevnika 'Python Lambda', mi pa se vam bomo javili v najkrajšem možnem času.

Če želite pridobiti poglobljeno znanje o Pythonu skupaj z različnimi aplikacijami, se lahko prijavite v živo s 24-urno podporo in življenjskim dostopom.