Kart, filtrer og reduser funksjoner i Python: Alt du trenger å vite



Lær hva som er kart (), filter () og reduser () funksjoner i Python. Vet også hvordan du bruker dem med lambda og brukerdefinerte funksjoner og sammen med hverandre.

Python har mange innebygde funksjoner som er forhåndsdefinerte og kan brukes av sluttbrukeren ved å bare ringe dem. Disse funksjonene letter ikke bare arbeidet til programmerere, men skaper også et standard kodingsmiljø. I denne artikkelen vil du lære om tre slike imponerende funksjoner, nemlig map (), filter and reduce () in .

Før vi går videre, la oss ta en titt på innholdet:





Så la oss komme i gang. :)

Hva er kart (), filter () og reduserer () funksjoner i Python?

Som nevnt tidligere er kart (), filter () og reduser () innebygd av Python. Disse funksjonene muliggjør funksjonell programmeringsaspekt av . I funksjonell programmering er argumentene som sendes de eneste faktorene som avgjør resultatet. Disse funksjonene kan ta en hvilken som helst annen funksjon som parameter og kan også leveres til andre funksjoner som parametere. Så la oss nå se nærmere på hver av disse funksjonene.



Kart () -funksjonen:

Kart () -funksjonen er en type høyere orden. Som nevnt tidligere, tar denne funksjonen en annen funksjon som en parameter sammen med en sekvens av iterables og returnerer en utgang etter at funksjonen er brukt på hver iterable som er tilstede i sekvensen. Dens syntaks er som følger:

SYNTAX:

kart (funksjon, iterables)



Her definerer funksjonen et uttrykk som igjen blir brukt på iterablene. Kartfunksjonen kan ta brukerdefinerte funksjoner så vel som lambda-funksjoner som parameter.

Bruke brukerdefinerte og Lambda-funksjoner innen:

Brukerdefinerte funksjoner i kart ():

Map () -funksjonen kan ta brukerdefinerte funksjoner som parametere. Parametrene til disse funksjonene stilles utelukkende av brukeren eller programmereren. For eksempel:

EKSEMPEL:

def newfunc (a): returner a * a x = map (newfunc, (1,2,3,4)) #x er kartobjektet utskrift (x) print (sett (x))

PRODUKSJON:

{16, 1, 4, 9}

Som du kan se, er x et kartobjekt. Neste delutgang viser kartfunksjonen som tar newfunc () som parameter, og deretter bruker den a * a på alle iterables. Som et resultat multipliseres verdiene til alle iterables med seg selv og returneres.

MERK: Utgangen er ikke i rekkefølge etter verdiene til iterables fordi jeg har brukt set () -funksjonen. Du kan også bruke funksjonene liste () eller tuple () for eksempel:

EKSEMPEL:

def newfunc (a): returner a * a x = map (newfunc, (1,2,3,4)) #x er kartobjektutskrift (x) print (liste (x))

PRODUKSJON:

[1, 4, 9, 16]

Du kan også sende mer enn en liste med parametere. For eksempel:

EKSEMPEL:

def func (a, b): returner a + b a = kart (func, [2, 4, 5], [1,2,3]) print (a) print (tuple (a))

PRODUKSJON:

(3, 6, 8)

La oss nå se hvordan du kan bruke lambda-funksjoner innenfor kart () -funksjonen.

Lambda fungerer innenfor kart ():

Lambda-funksjoner er funksjoner som har noe navn. Disse funksjonene leveres ofte som parametere til andre funksjoner. La oss nå prøve å legge inn lambdafunksjoner i kartfunksjonen. Tenk på følgende eksempel:

EKSEMPEL:

tup = (5, 7, 22, 97, 54, 62, 77, 23, 73, 61) newtuple = tuple (kart (lambda x: x + 3, tup)) print (newtuple)

PRODUKSJON:

(8, 10, 25, 100, 57, 65, 80, 26, 76, 64)

Ovennevnte utdata er et resultat av å bruke lambdauttrykket (x + 3) på hvert element som er tilstede i tupelen.

Filter () -funksjonen:

Filter () -funksjonen brukes til å lage en utgangsliste som består av verdier som funksjonen returnerer true. Syntaksen for den er som følger:

SYNTAX:

filter (funksjon, iterables)

analysere xml-filer i java

Akkurat som map (), kan denne funksjonen brukes, kan også ta brukerdefinerte funksjoner samt lambdafunksjoner som en parameter.

EKSEMPEL:

def func (x): hvis x> = 3: return x y = filter (func, (1,2,3,4)) print (y) print (liste (y))

PRODUKSJON:

[3. 4]

Som du kan se, er y filterobjektet, og listen er en liste over verdier som er sanne for tilstanden (x> = 3).

Bruke lambda i filteret ():


Lambda-funksjonen som brukes som parameter definerer faktisk tilstanden som skal kontrolleres. For eksempel:

EKSEMPEL:

y = filter (lambda x: (x> = 3), (1,2,3,4)) utskrift (liste (y))

PRODUKSJON: [3. 4]

Ovennevnte kode gir samme utgang som forrige funksjon.

Reduser () -funksjonen:

Funksjonen redusere (), som navnet beskriver, bruker en gitt funksjon på iterablene og returnerer en enkelt verdi.

reduser-kart reduser filter-edureka

Syntaksen til denne funksjonen er som følger:

SYNTAX:

redusere (funksjon, iterables)

Funksjonen her definerer hvilket uttrykk som må brukes på iterables. Denne funksjonen må importeres fra funksjonsverktøyene modul . For eksempel:

EKSEMPEL:

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

PRODUKSJON: 187

I eksemplet ovenfor legger reduseringsfunksjonen sammen hver iterabel som er til stede i listen, og returnerer en enkelt utgang.

Kart (), filter () og redusere () funksjoner i Python kan brukes sammen med hverandre.

Ved hjelp av kart (), filtrer () og reduser () funksjoner sammen med hverandre:

Når du gjør dette, løses de interne funksjonene først, og deretter fungerer de ytre funksjonene på utgangen fra de interne funksjonene.

La oss først prøve å sende filter () -funksjonen som en parameter til map () -funksjonen.

Ved hjelp av filter () i kartet ():

Koden som er gitt nedenfor, sjekker først for at tilstanden (x> = 3) er sant for iterables. Deretter blir utdataene kartlagt ved hjelp av kartfunksjonen ().

EKSEMPEL:

c = kart (lambda x: x + x, filter (lambda x: (x> = 3), (1,2,3,4))) utskrift (liste (c))

PRODUKSJON: [6, 8]

Hvis du filtrerer ut heltall større enn eller lik 3 fra den gitte tupelen, får du [3,4] som resultat. Så hvis du kartlegger dette ved hjelp av (x + x) -tilstand, får du [6,8], som er utdata.

Bruke kart () i filteret ():


Når du bruker map () -funksjonen i filter () -funksjonen, blir iterables først operert av kartfunksjonen, og deretter blir tilstanden til filteret () brukt på dem.

EKSEMPEL:

c = filter (lambda x: (x> = 3), kart (lambda x: x + x, (1,2,3,4))) #lambda x: (x> = 3) utskrift (liste (c) )

PRODUKSJON: [4, 6, 8]

Ved hjelp av kart () og filter () innenfor redusere ():

Resultatet av de interne funksjonene reduseres i henhold til tilstanden som leveres til redusere () funksjonen.

EKSEMPEL:

d = reduser (lambda x, y: x + y, kart (lambda x: x + x, filter (lambda x: (x> = 3), (1,2,3,4)))) utskrift (d)

PRODUKSJON: 14

Utgangen er et resultat av [6,8] som er resultatet av funksjonene til det interne kartet () og filteret ().

Med dette har vi nådd slutten av denne artikkelen på kart (), filter () og reduserer funksjoner i Python. Jeg håper du har forstått alt tydelig. 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 i denne “kart (), filter () og reduser () funksjoner i Python” -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.