Hva er Lambda-funksjoner og hvordan bruker du dem?



Lær Python lambda-funksjoner sammen med forskjellen mellom normale funksjoner og lambda-funksjoner og hvordan de kan brukes i filter (), kart (), reduser ().

Et navn er en konvensjon som brukes til å referere til eller adressere en hvilken som helst enhet. Nesten alt rundt oss har et navn. Programmeringsverdenen går også i samsvar med dette. Men er det et must å nevne alt? Eller kan du ha noe som bare er ‘anonymt’? Svaret er ja. ' gir Lambda-funksjoner, også kjent som anonyme funksjoner som faktisk er navnløse. Så la oss gå videre for å lære om disse ‘Anonyme mysteriene’ av Python, i følgende sekvens.

Så la oss begynne :)





Hvorfor bruke Python Lambda-funksjoner?


Hovedformålet med anonyme funksjoner kommer inn i bildet når du trenger en funksjon bare en gang. De kan opprettes uansett hvor de er nødvendige. På grunn av dette er Python Lambda-funksjoner også kjent som kaste-funksjoner som brukes sammen med andre forhåndsdefinerte funksjoner som filter (), kart () osv. Disse funksjonene bidrar til å redusere antall linjer i koden din sammenlignet med normal .

For å bevise dette, la oss gå videre og lære om Python Lambda-funksjoner.



Hva er Python Lambda-funksjoner?


Python Lambda-funksjoner er funksjoner som ikke har noe navn. De er også kjent som anonyme eller navnløse funksjoner. Ordet ‘lambda’ er ikke et navn, men det er et nøkkelord. Dette nøkkelordet spesifiserer at funksjonen som følger er anonym.

Nå som du er klar over hva disse anonyme funksjonene refererer til, la oss gå videre for å se hvordan du skriver disse Python Lambda-funksjonene.

Hvordan skriver jeg Lambda-funksjoner i Python?

En Lambda-funksjon opprettes ved hjelp av lambda-operatøren, og syntaksen er som følger:



SYNTAX:

lambda argumenter: uttrykk

Python lambda-funksjon kan ha et hvilket som helst antall argumenter, men det tar bare ett uttrykk. Inngangene eller argumentene kan starte ved 0 og gå opp til en hvilken som helst grense. Akkurat som alle andre funksjoner, er det helt greit å ha lambdafunksjoner uten innganger. Derfor kan du ha lambdafunksjoner i et av følgende formater:

EKSEMPEL:

lambda: “Spesifiser formålet”

Her tar ikke lambda-funksjonen noen argumenter.

EKSEMPEL:

lambda aen: “Spesifiser bruken av enen'

Her tar lambda ett innspill som er enen.

hva er forskjellen mellom css og css3

På samme måte kan du ha lambda aen, til2, til3..tiln.

La oss ta noen eksempler for å demonstrere dette:

EKSEMPEL 1:

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

PRODUKSJON: 9

EKSEMPEL 2:

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

PRODUKSJON: tjueen

Som du ser har jeg tatt to eksempler her. Det første eksemplet bruker lambda-funksjonen med bare ett uttrykk, mens det andre eksemplet har to argumenter overført til det. Vær oppmerksom på at begge funksjonene har ett uttrykk etterfulgt av argumentene. Derfor kan ikke lambdafunksjoner brukes der du trenger uttrykk med flere linjer.

På den annen side kan normale pythonfunksjoner ta et hvilket som helst antall setninger i funksjonsdefinisjonene.

Hvordan reduserer anonyme funksjoner størrelsen på koden?

Før vi sammenligner antall koder som kreves, la oss først skrive ned syntaksen til og sammenlign den med lambdafunksjonene som er beskrevet tidligere.

Enhver normal funksjon i Python defineres ved hjelp av a def nøkkelord som følger:

SYNTAX:

def funksjonsnavn (parametere):
uttalelse (r)

Som du ser er mengden kode som kreves for en lambda-funksjon ganske mindre enn den for normale funksjoner.

La oss omskrive eksemplet vi tok tidligere med normale funksjoner nå.

EKSEMPEL:

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

PRODUKSJON: 9

Som du kan se, i eksemplet ovenfor, trenger vi en returuttalelse i my_func for å evaluere verdien av firkanten på 3. I motsetning til dette, bruker lambda-funksjonen ikke denne returuttalelsen, men kroppen til den anonyme funksjonen er skrevet på samme linje som selve funksjonen, etter kolon-symbolet. Derfor er størrelsen på funksjonen mindre enn størrelsen på my_func.

Imidlertid kalles lambdafunksjoner i eksemplene ovenfor ved hjelp av noen andre en. Dette gjøres fordi disse funksjonene er navnløse og derfor krever noe navn for å bli kalt. Men dette faktum kan virke forvirrende på hvorfor du bruker slike navnløse funksjoner når du faktisk trenger å tildele et annet navn for å kalle dem? Og selvfølgelig, etter å ha tildelt navnet a til funksjonen min, forblir den ikke navnløs lenger! Ikke sant?

sortering av en matrise i c ++ - programmet

Det er et legitimt spørsmål, men poenget er at dette ikke er den rette måten å bruke disse anonyme funksjonene på.

Anonyme funksjoner brukes best i andre høyere ordensfunksjoner som enten bruker noen funksjoner som et argument, eller returnerer en funksjon som utdata. For å demonstrere dette, la oss nå gå videre mot vårt neste emne.

Python Lambda-funksjoner innen brukerdefinerte funksjoner:

Som nevnt ovenfor, brukes lambdafunksjoner innen andre funksjoner for å markere den beste fordelen.

Følgende eksempel består av new_func som er en normal python-funksjon som tar ett argument x. Dette argumentet blir deretter lagt til noe ukjent argument y som tilføres gjennom lambda-funksjonen.

EKSEMPEL:

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

PRODUKSJON:

6
5
Som du kan se, i eksemplet ovenfor kalles lambda-funksjonen som er tilstede i new_func hver gang vi bruker new_func (). Hver gang kan vi gi separate verdier til argumentene.

Nå som du har sett hvordan du bruker anonyme funksjoner i funksjoner med høyere ordre, la oss nå gå videre for å forstå en av de mest populære bruksområdene som er innenfor filter (), map () og reduce () -metodene.

Hvordan bruke anonyme funksjoner innen filter (), kart () og redusere ():

Anonyme funksjoner innenfor filter():

filter():

Filter () -metoden brukes til å filtrere gitte iterables (lister, sett osv.) Ved hjelp av en annen funksjon, sendt som et argument, for å teste alle elementene for å være sanne eller falske.

Syntaksen til denne funksjonen er:

SYNTAX:

filter (funksjon, iterabel)

Vurder nå følgende eksempel:

EKSEMPEL:

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

PRODUKSJON: [6]

Her er min_liste en liste over iterable verdier som sendes til filterfunksjonen. Denne funksjonen bruker lambdafunksjonen til å sjekke om det er noen verdier i listen, som tilsvarer 2 når de er delt med 3. Utgangen består av en liste som tilfredsstiller uttrykket som er tilstede i den anonyme funksjonen.

kart():

Map () -funksjonen i Python er en funksjon som bruker en gitt funksjon på alle iterables og returnerer en ny liste.

SYNTAX:

kart (funksjon, iterabel)

La oss ta et eksempel for å demonstrere bruken av lambda-funksjonene i map () -funksjonen:

EKSEMPEL:

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

PRODUKSJON:

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

Ovennevnte utgang viser at når verdien av iterables ikke er lik 2 når den deles med 3, skal resultatet som returneres være True. Derfor, for alle elementene i min_liste, returnerer den sant bortsett fra verdien 6 når tilstanden endres til Falsk.

redusere():

Funksjonen redusere () brukes til å bruke en annen funksjon på en liste over elementer som sendes som en parameter til den og til slutt returnerer en enkelt verdi.

Syntaksen til denne funksjonen er som følger:

SYNTAX:

redusere (funksjon, sekvens)

EKSEMPEL:

fra functools import redusere redusere (lambda a, b: a + b, [23,21,45,98])

Ovenstående eksempel er avbildet i følgende bilde:

reduser-python lambda-edureka

PRODUKSJON: 187

Resultatet viser tydelig at alle elementene i listen er lagt kontinuerlig til for å returnere det endelige resultatet.

php forskjell mellom ekko og utskrift

Med dette kommer vi til slutten av denne artikkelen om ‘Python Lambda’. Håper du er tydelig med alt som har blitt delt med deg. Forsikre deg om at du trener så mye som mulig og tilbakestiller opplevelsen.

Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet til denne 'Python Lambda' -bloggen, så kommer vi tilbake til deg så snart som mulig.

For å få inngående kunnskap om Python sammen med de forskjellige applikasjonene, kan du registrere deg for live med 24/7 support og levetidstilgang.