Kort, filtrer og reducer funktioner i Python: Alt hvad du behøver at vide

Lær, hvad der er kort (), filter () og reducer () funktioner i Python. Ved også, hvordan man bruger dem med lambda og brugerdefinerede funktioner og sammen med hinanden.

Python leverer mange indbyggede funktioner, der er foruddefinerede og kan bruges af slutbrugeren ved blot at ringe til dem. Disse funktioner letter ikke kun programmørernes arbejde, men skaber også et standardkodningsmiljø. I denne artikel lærer du om tre sådanne imponerende funktioner, nemlig map (), filter og reducer () in .



Før vi går videre, skal vi se på indholdet:



Så lad os komme i gang. :)

Hvad er kort (), filter () og reducerer () funktioner i Python?

Som tidligere nævnt er map (), filter () og reduce () indbygget af Python. Disse funktioner muliggør det funktionelle programmeringsaspekt af . I funktionel programmering er de argumenter, der er sendt, de eneste faktorer, der bestemmer output. Disse funktioner kan tage enhver anden funktion som parameter og kan også leveres til andre funktioner som parametre. Så lad os nu se nærmere på hver af disse funktioner.



Kortfunktionen:

Kortfunktionen () er en type højere orden. Som nævnt tidligere tager denne funktion en anden funktion som en parameter sammen med en sekvens af iterables og returnerer et output efter anvendelse af funktionen til hver iterable, der er til stede i sekvensen. Dens syntaks er som følger:

SYNTAX:

kort (funktion, iterables)



Her definerer funktionen et udtryk, der igen anvendes på iterables. Kortfunktionen kan tage brugerdefinerede funktioner så godt som lambda-funktioner som en parameter.

Brug af brugerdefinerede og Lambda-funktioner inden for:

Brugerdefinerede funktioner inden for kort ():

Map () -funktionen kan tage brugerdefinerede funktioner som parametre. Parametrene for disse funktioner indstilles udelukkende af brugeren eller programmøren. For eksempel:

EKSEMPEL:

def newfunc (a): returner a * a x = map (newfunc, (1,2,3,4)) #x er kortobjektudskrivning (x) print (sæt (x))

PRODUKTION:

{16, 1, 4, 9}

java dobbelt til int runde

Som du kan se, er x et kortobjekt. Den næste deludgang viser kortfunktionen med newfunc () som parameter, og derefter anvender den a * a på alle iterables. Som et resultat ganges værdierne for alle iterables med sig selv og returneres.

BEMÆRK: Outputtet er ikke i rækkefølge efter værdierne på iterables, fordi jeg har brugt funktionen set (). Du kan også bruge listen () eller tuple () for eksempel:

EKSEMPEL:

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

PRODUKTION:

[1, 4, 9, 16]

Du kan også videregive mere end en liste med parametre. For eksempel:

EKSEMPEL:

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

PRODUKTION:

(3, 6, 8)

Lad os nu se, hvordan du kan bruge lambda-funktioner inden for funktionen map ().

Lambda-funktioner inden for kort ():

Lambda-funktioner er funktioner, der har noget navn. Disse funktioner leveres ofte som parametre til andre funktioner. Lad os nu prøve at integrere lambdafunktioner i funktionen map (). Overvej følgende eksempel:

EKSEMPEL:

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

PRODUKTION:

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

Ovenstående output er et resultat af anvendelse af lambda-udtrykket (x + 3) på hvert element, der er til stede i tuplen.

Funktionen filter ():

Funktionen filter () bruges til at oprette en outputliste bestående af værdier, som funktionen returnerer sand for. Syntaksen for det er som følger:

SYNTAX:

filter (funktion, iterables)

Ligesom map () kan denne funktion bruges, kan også tage brugerdefinerede funktioner såvel som lambda-funktioner som en parameter.

EKSEMPEL:

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

PRODUKTION:

[3. 4]

Som du kan se, er y filterobjektet, og listen er en liste over værdier, der er sande for betingelsen (x> = 3).

Brug af lambda i filteret ():


Lambda-funktionen, der bruges som parameter, definerer faktisk den tilstand, der skal kontrolleres. For eksempel:

EKSEMPEL:

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

PRODUKTION: [3. 4]

spørgsmål om salgsstyrke-service til cloudinterview

Ovenstående kode producerer den samme output som den foregående funktion.

Funktionen reducere ():

Funktionen reducere (), som navnet beskriver, anvender en given funktion til iterablerne og returnerer en enkelt værdi.

reducer-kort reducer filter-edureka

Syntaksen for denne funktion er som følger:

SYNTAX:

reducere (funktion, iterables)

Funktionen her definerer, hvilket udtryk der skal anvendes på iterables. Denne funktion skal importeres fra funktionsværktøjerne modul . For eksempel:

EKSEMPEL:

php print_r array
fra funktionools import reducer reducer (lambda a, b: a + b, [23,21,45,98])

PRODUKTION: 187

I ovenstående eksempel tilføjer reduceringsfunktionen fortløbende hver iterabel, der er til stede på listen, og returnerer en enkelt output.

Kort (), filter () og reducere () funktionerne i Python kan bruges sammen med hinanden.

Brug kort (), filter () og reducer () -funktioner sammen med hinanden:

Når du gør dette, løses de interne funktioner først, og derefter fungerer de ydre funktioner på udgangen af ​​de interne funktioner.

Lad os først prøve at sende filter () -funktionen som en parameter til kortfunktionen.

Brug af filter () inden for kort ():

Koden nedenfor kontrollerer først, om betingelsen (x> = 3) er sand for iterables. Derefter kortlægges output ved hjælp af funktionen map ().

EKSEMPEL:

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

PRODUKTION: [6, 8]

Hvis du filtrerer helt tal større end eller lig med 3 fra den givne tuple, får du [3,4] som resultat. Så hvis du kortlægger dette ved hjælp af (x + x) -tilstand, får du [6,8], hvilket er output.

Brug af kort () inden for filter ():


Når du bruger funktionen map () inden for filter () -funktionen, betjenes iterables først af kortfunktionen, og derefter anvendes filterets () tilstand på dem.

EKSEMPEL:

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

PRODUKTION: [4, 6, 8]

Brug af kort () og filter () inden for reducer ():

Output af de interne funktioner reduceres i henhold til den tilstand, der leveres til reducere () -funktionen.

EKSEMPEL:

d = reducer (lambda x, y: x + y, kort (lambda x: x + x, filter (lambda x: (x> = 3), (1,2,3,4)))) print (d)

PRODUKTION: 14

Outputtet er et resultat af [6,8], hvilket er resultatet af de interne kort () og filter () funktioner.

Med dette har vi nået slutningen af ​​denne artikel på kort (), filter () og reducer funktioner i Python. Jeg håber, du har forstået alt klart. Sørg for at øve så meget som muligt, og vend din oplevelse tilbage.

Har du et spørgsmål til os? Nævn det i kommentarfeltet på denne “map (), filter () og reducer () -funktioner i Python” -blog, og vi vender tilbage til dig hurtigst muligt.

For at få dybtgående viden om Python sammen med dens forskellige applikationer kan du tilmelde dig live med 24/7 support og livstidsadgang.