Što su Lambda funkcije i kako ih koristiti?



Naučite Python lambda funkcije zajedno s razlikom između normalnih funkcija i lambda funkcija i kako se one mogu koristiti u filteru (), mapiranju (), smanjenju ().

Ime je konvencija koja se koristi za pozivanje na bilo koji entitet ili obraćanje njemu. Gotovo sve oko nas ima svoje ime. Svijet programiranja također ide u skladu s tim. No je li nužno sve imenovati? Ili možete imati nešto što je samo ‘anonimno’? Odgovor je da. ' pruža Lambda funkcije, poznate i kao anonimne funkcije koje su u stvari bezimene. Krenimo dalje kako bismo saznali više o ovim anonimnim misterijama Pythona, u sljedećem slijedu.

Pa krenimo :)





Zašto koristiti Python Lambda funkcije?


Glavna svrha anonimnih funkcija dolazi u sliku kad vam je funkcija potrebna samo jednom. Mogu se stvoriti gdje god su potrebni. Iz tog razloga, Python Lambda funkcije poznate su i kao funkcije bacanja koje se koriste zajedno s drugim unaprijed definiranim funkcijama kao što su filter (), map () itd. Ove funkcije pomažu smanjiti broj redaka vašeg koda u usporedbi s normalan .

Da bismo to dokazali, idemo dalje i saznajmo više o Python Lambda funkcijama.



Što su Python Lambda funkcije?


Python Lambda funkcije su funkcije koje nemaju nikakvo ime. Poznate su i kao anonimne ili bezimene funkcije. Riječ ‘lambda’ nije ime, već je ključna riječ. Ova ključna riječ određuje da je funkcija koja slijedi anonimna.

Sad kad ste svjesni na što se odnose ove anonimne funkcije, idemo dalje kako bismo vidjeli kako pišete ove Python Lambda funkcije.

Kako napisati Lambda funkcije u Python?

Lambda funkcija kreira se pomoću lambda operatora i njena sintaksa je sljedeća:



SINTAKSA:

lambda argumenti: izraz

Piton lambda funkcija može imati bilo koji broj argumenata, ali treba samo jedan izraz. Ulazi ili argumenti mogu započeti na 0 i ići do bilo kojeg ograničenja. Kao i bilo koje druge funkcije, sasvim je u redu imati lambda funkcije bez ulaza. Stoga možete imati lambda funkcije u bilo kojem od sljedećih formata:

PRIMJER:

lambda: 'Navedite svrhu'

Ovdje funkcija lambda ne uzima nikakve argumente.

PRIMJER:

lambda ajedan: „Navedite upotrebu ajedan'

Ovdje lambda uzima jedan ulaz koji je ajedan.

pronađi najveću vrijednost u nizu java

Slično tome, možete imati lambda ajedan, do2, do3..don.

Uzmimo nekoliko primjera da to pokažemo:

PRIMJER 1:

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

IZLAZ: 9

PRIMJER 2:

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

IZLAZ: dvadeset i jedan

Kao što vidite, ovdje sam uzeo dva primjera. Prvi primjer koristi lambda funkciju sa samo jednim izrazom, dok drugi primjer ima dva argumenta koja su mu proslijeđena. Imajte na umu da obje funkcije imaju jedan izraz iza kojeg slijede argumenti. Stoga se lambda funkcije ne mogu koristiti tamo gdje su vam potrebni izrazi s više linija.

S druge strane, normalne python funkcije mogu uzeti bilo koji broj izraza u svojim definicijama funkcija.

Kako anonimne funkcije smanjuju veličinu koda?

Prije usporedbe potrebne količine koda, prvo zapišite sintaksu i usporedite je s prethodno opisanom lambda funkcijom.

Svaka normalna funkcija u Pythonu definira se pomoću a def ključna riječ kako slijedi:

SINTAKSA:

tutorial za informaticu za početnike pdf besplatno preuzmi

def function_name (parametri):
izjava (e)

Kao što vidite, količina koda potrebna za lambda funkciju prilično je manja od količine normalnih funkcija.

Prepišimo primjer koji smo uzeli ranije koristeći sada normalne funkcije.

PRIMJER:

def my_func (x): vrati x * x ispis (my_func (3))

IZLAZ: 9

Kao što vidite, u gornjem primjeru potreban nam je return izraz unutar my_func da bismo procijenili vrijednost kvadrata 3. Suprotno tome, lambda funkcija ne koristi ovaj return izraz, već tijelo anonimne funkcije zapisuje se u isti redak kao i sama funkcija, nakon simbola dvotačke. Stoga je veličina funkcije manja od moje_func.

Međutim, lambda funkcije u gornjim primjerima pozvane su pomoću nekih drugih a. To je učinjeno jer su ove funkcije bezimene i zato zahtijevaju pozivanje nekog imena. Ali, ova činjenica može se činiti zbunjujućom zašto koristiti takve bezimene funkcije kad trebate dodijeliti neko drugo ime da biste ih nazvali? I naravno, nakon što dodijelim ime a mojoj funkciji, ono više ne ostaje bezimeno! Pravo?

To je legitimno pitanje, ali poanta je u tome što ovo nije ispravan način korištenja ovih anonimnih funkcija.

Anonimne funkcije najbolje je koristiti unutar ostalih funkcije višeg reda koji koriste neku funkciju kao argument ili vraćaju funkciju kao izlaz. Da bismo to demonstrirali, krenimo sada prema našoj sljedećoj temi.

Python Lambda funkcije unutar korisnički definiranih funkcija:

Kao što je gore spomenuto, lambda funkcije koriste se unutar ostalih funkcija kako bi označile najbolju prednost.

Sljedeći se primjer sastoji od new_func koji je normalna python funkcija koja uzima jedan argument x. Taj se argument zatim dodaje nekom nepoznatom argumentu y koji se isporučuje putem lambda funkcije.

PRIMJER:

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

IZLAZ:

6
5
Kao što vidite, u gornjem primjeru poziva se lambda funkcija koja je prisutna u new_func kad god koristimo new_func (). Svaki put argumentima možemo proslijediti zasebne vrijednosti.

Sad kad ste vidjeli kako koristiti anonimne funkcije unutar funkcija višeg reda, krenimo sada kako bismo razumjeli jednu od njegovih najpopularnijih upotreba koja se nalazi u filter (), map () i reduce () metodama.

Kako koristiti anonimne funkcije u filteru (), mapi () i smanjiti ():

Anonimne funkcije unutar filtar():

filtar():

Metoda filter () koristi se za filtriranje zadanih iterabila (popisa, skupova itd.) Uz pomoć druge funkcije, prosljeđene kao argument, za testiranje svih elemenata na istinitost ili neistinu.

Sintaksa ove funkcije je:

SINTAKSA:

filtar (funkcija, iterable)

Sada razmotrite sljedeći primjer:

PRIMJER:

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

IZLAZ: [6]

Ovdje je my_list popis ponovljivih vrijednosti koji se prosljeđuju funkciji filtra. Ova funkcija koristi lambda funkciju da provjeri postoje li vrijednosti na popisu, koje će se izjednačiti s 2 ako se podijeli s 3. Izlaz se sastoji od popisa koji zadovoljava izraz prisutan u anonimnoj funkciji.

karta():

Funkcija map () u Pythonu je funkcija koja primjenjuje zadanu funkciju na sve iterable i vraća novi popis.

SINTAKSA:

karta (funkcija, iterabilna)

Uzmimo primjer za demonstraciju upotrebe lambda funkcija unutar funkcije map ():

PRIMJER:

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

IZLAZ:

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

Gornji izlaz pokazuje da, kad god vrijednost iterablea nije jednaka 2 kada se podijeli s 3, rezultat bi trebao biti True. Stoga za sve elemente na my_list vraća true osim vrijednosti 6 kada se uvjet promijeni u False.

smanjiti():

Funkcija reduce () koristi se za primjenu neke druge funkcije na popis elemenata koji joj se prosljeđuju kao parametar i na kraju vraća jednu vrijednost.

Sintaksa ove funkcije je sljedeća:

SINTAKSA:

smanjiti (funkcija, slijed)

PRIMJER:

iz functools uvoza smanjiti smanjiti (lambda a, b: a + b, [23,21,45,98])

Gornji primjer prikazan je na sljedećoj slici:

smanjiti-python lambda-edureka

IZLAZ: 187

Rezultat jasno pokazuje da su svi elementi popisa dodavao kontinuirano za vraćanje konačnog rezultata.

Ovime dolazimo do kraja ovog članka o ‘Python Lambda’. Nadam se da vam je jasno sa svime što je s vama podijeljeno. Obavezno vježbajte što je više moguće i vratite svoje iskustvo.

je hadoop lako naučiti

Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ovog bloga 'Python Lambda' i javit ćemo vam se što je prije moguće.

Da biste stekli detaljno znanje o Pythonu, zajedno s raznim aplikacijama, možete se prijaviti uživo s 24/7 podrškom i doživotnim pristupom.