I denne artikkelen vil vi prøve å lære om Python Lambda.
Definisjon
Lambda er en funksjon definert uten navn. Dette kan ta flere argumenter, men bare ett uttrykk er tillatt som evalueres og returneres. Der funksjonsobjekter er påkrevd, kan vi bruke lambda-funksjonen.
Syntaks:
lambda argumenter: uttrykk
Eksempel 1: Funksjonen nedenfor brukes til å beregne kuben til et tall.
def kube (a):returner a * a * a
trykk (kube (3))
Ovennevnte funksjon kan skrives med lambda, som vist nedenfor:
p = lambda x: x * x * xskriv ut (p (3))
Eksempel 2: Funksjonen nedenfor brukes til å beregne summen av to tall.
def sum_2 (x, y):returner x + y
trykk (sum_2 (10,20))
Ovennevnte funksjon kan skrives med lambda, som vist nedenfor:
p = lambda x, y: x + ytrykk (p (10,20))
Eksempel 3: Eksemplet nedenfor for lambda tar flere argumenter.
p = lambda x, y, z: x + y + zskriv ut (p (10, 5, 3))
Eksempel 4: Denne funksjonen multipliserer tallet med 2 og kan skrives ved hjelp av Lambda-funksjonen som nedenfor:
def func (n):retur lambda x: x * n
multiply_by_2 = func (2)
skriv ut (multipliser_by_2 (11))
skriv ut (multipliser_by_2 (15))
Eksempel 5: Funksjonen tar funksjon som argument og returnerer resultatet.
funksjonsargument = lambda p, f: p + f (p)skriv ut (funksjonsargument (5, lambda p: p * p))
skriv ut (funksjonsargument (10, lambda x: x - 3))
skriv ut (funksjonsargument (10, lambda x: x + 5))
skriv ut (funksjonsargument (10, lambda x: x / 5))
Eksempel 6: I eksemplet nedenfor brukes lambda til å sortere verdiene.
# (navn, etternavn, alder)data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
data.sorter (nøkkel = lambda x: x [0]) # sorter basert på navn
skriv ut (data)
data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
data.sorter (nøkkel = lambda x: x [1]) # sorter basert på etternavn
skriv ut (data)
data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
data.sorter (nøkkel = lambda x: x [2]) # sorter basert på alder
skriv ut (data)
Gå nå inn i python3-tolk.
Lambda-funksjonen brukes i mange innebygde metoder. Følgende er noen eksempler:
1. Kart
Denne funksjonen kartlegger hvert element i rekkefølge ved hjelp av lambda-funksjonen.
Syntaks:
kart (funksjon, seq)
Eks:
nums = [1,2,3,4,5,6]
Her vil vi multiplisere hvert element i listen med 2.
mul_2 = kart (lambda x: x * 2, nums)
print (list (mul_2)) # Den returnerer kartobjekt og skriver frem som liste.
I ovennevnte funksjon blir hvert element i listen overført til lambda-funksjonen, og lambda-funksjonen vil multiplisere den med 2.
nums = [1,2,3,4,5,6]mul_2 = kart (lambda x: x * 2, nums)
skriv ut (liste (mul_2))
2. Filter
Denne funksjonen filtrerer ut alle elementene i en liste som lambda-funksjonen returnerer True for.
Syntaks:
filter (funksjon, seq)
Eks:
tall = [0,1,2,3,4,5,6,7,8,9,10]
odd_nums = filter (lambda x: x% 2, nums)
print (list (odd_nums)) # Den returnerer kartobjekt, og skriver frem som liste.
odd_nums = filter (lambda x: x% 2, nums)
skriv ut (liste (oddetall))
3. Redusere
Denne funksjonen returnerer en enkelt verdi ved å bruke funksjon func () til sekvensen.
Syntaks:
redusere (func, seq)
Eks:
tall = [0,1,2,3,4,5,6,7,8,9,10]
verdi = reduser (lambda x, y: x + y, nums)
skriv ut (verdi)
I listen ovenfor tar det de to første elementene og utfører tillegg. Resultatet av et tillegg vil bli lagt til det tredje elementet og så videre. Til slutt vil den returnere en enkelt verdi.
Merk: Denne metoden er ikke tilgjengelig i python3 + -versjonen.
tall = [0,1,2,3,4,5,6,7,8,9,10]verdi = reduser (lambda x, y: x + y, nums)
skriv ut (verdi)
Konklusjon
Fra denne artikkelen har vi lært mange aspekter av lambda-funksjonen. Avhengig av hva programmet trenger, kan vi bruke det og lage bedre pythonkoding. Dette brukes oftest til å overføre argumenter til en annen funksjon (for eksempel har vi sett ovenfor funksjoner kartlegge, filtrere og redusere).