Mapa, filtratge i reducció de funcions a Python: tot el que necessiteu saber

Apreneu què són les funcions map (), filter () i reduce () a Python. També sabeu com utilitzar-les amb funcions lambda i definides per l'usuari i juntes.

Python proporciona moltes funcions integrades que estan predefinides i poden ser utilitzades per l'usuari final només trucant-les. Aquestes funcions no només faciliten el treball dels programadors, sinó que també creen un entorn de codificació estàndard. En aquest article, aprendreu sobre tres funcions tan impressionants: map (), filter i reduce () in .



Abans de seguir endavant, fem una ullada al contingut:

Comencem doncs. :)

Què són les funcions map (), filter () i reduce () a Python?

Com s'ha esmentat anteriorment, map (), filter () i reduce () estan incorporats de Python. Aquestes funcions permeten l'aspecte de programació funcional de . En la programació funcional, els arguments aprovats són els únics factors que decideixen la sortida. Aquestes funcions poden prendre qualsevol altra funció com a paràmetre i també es poden subministrar a altres funcions com a paràmetres. Per tant, donem una ullada més profunda a cadascuna d’aquestes funcions.



La funció map ():

La funció map () és un tipus d’ordre superior. Com s'ha esmentat anteriorment, aquesta funció pren una altra funció com a paràmetre juntament amb una seqüència d'iterables i retorna una sortida després d'aplicar la funció a cada iterable present a la seqüència. La seva sintaxi és la següent:

SINTAXI:

mapa (funció, iterables)



Aquí, la funció defineix una expressió que al seu torn s'aplica als iterables. La funció de mapa també pot adoptar funcions definides per l'usuari funcions lambda com a paràmetre.

Utilització de funcions definides per l'usuari i Lambda dins:

Funcions definides per l'usuari dins de map ():

La funció map () pot prendre funcions definides per l'usuari com a paràmetres. Els paràmetres d’aquestes funcions els defineix exclusivament l’usuari o el programador. Per exemple:

EXEMPLE:

def newfunc (a): retorna a * a x = map (newfunc, (1,2,3,4)) #x és l'objecte mapa print (x) print (set (x))

SORTIDA:

{16, 1, 4, 9}

Com podeu veure, x és un objecte de mapa. La següent part de sortida mostra la funció de mapa prenent newfunc () com a paràmetre i, a continuació, aplica a * a a tots els iterables. Com a resultat, els valors de tots els iterables es multipliquen per si mateixos i es retornen.

NOTA: La sortida no està en ordre dels valors dels iterables perquè he utilitzat la funció set (). També podeu utilitzar les funcions list () o tupla () per exemple:

EXEMPLE:

def newfunc (a): retorna a * a x = map (newfunc, (1,2,3,4)) #x és l'objecte mapa imprimir (x) imprimir (llista (x))

SORTIDA:

currículum vitae desenvolupador frontal

[1, 4, 9, 16]

També podeu passar més d'una llista de paràmetres. Per exemple:

EXEMPLE:

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

SORTIDA:

(3, 6, 8)

Ara vegem com es pot utilitzar funcions lambda dins de la funció map ().

Funcions Lambda dins del mapa ():

Les funcions Lambda són funcions que tenen qualsevol nom. Aquestes funcions sovint es subministren com a paràmetres a altres funcions. Ara intentem incrustar funcions lambda dins de la funció map (). Penseu en el següent exemple:

EXEMPLE:

tup = (5, 7, 22, 97, 54, 62, 77, 23, 73, 61) newtuple = tupla (mapa (lambda x: x + 3, tup)) imprimir (newtuple)

SORTIDA:

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

La sortida anterior és el resultat d'aplicar l'expressió lambda (x + 3) a cada element present a la tupla.

La funció filter ():

La funció filter () s'utilitza per crear una llista de sortida que consta de valors per als quals la funció retorna cert. La seva sintaxi és la següent:

SINTAXI:

filtre (funció, iterables)

Igual que map (), aquesta funció es pot utilitzar també pot prendre funcions definides per l'usuari i funcions lambda com a paràmetre.

EXEMPLE:

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

SORTIDA:

[3, 4]

Com podeu veure, y és l'objecte de filtre i la llista és una llista de valors que són certs per a la condició (x> = 3).

Utilitzant lambda dins del filtre ():


La funció lambda que s’utilitza com a paràmetre defineix realment la condició que s’ha de comprovar. Per exemple:

EXEMPLE:

i = filter (lambda x: (x> = 3), (1,2,3,4)) print (list (i))

SORTIDA: [3, 4]

El codi anterior produeix la mateixa sortida que la funció anterior.

La funció reduce ():

La funció reduce (), tal com el seu nom descriu, aplica una funció determinada als iterables i retorna un valor únic.

reduce-map reduce filter-edureka

La sintaxi d'aquesta funció és la següent:

SINTAXI:

reduir (funció, iterables)

La funció aquí defineix quina expressió s’ha d’aplicar als iterables. Cal importar aquesta funció des de les funcions mòdul . Per exemple:

EXEMPLE:

des de funcools importar reduir reduir (lambda a, b: a + b, [23,21,45,98])

SORTIDA: 187

A l'exemple anterior, la funció de reducció afegeix de manera consecutiva cada iterable present a la llista i retorna una única sortida.

Les funcions map (), filter () i reduce () de Python es poden utilitzar juntes.

Mitjançant les funcions map (), filter () i reduce () juntes:

Quan feu això, primer es resolen les funcions internes i després les funcions externes funcionen a la sortida de les funcions internes.

Intentem primer passar la funció filter () com a paràmetre a la funció map ().

Utilitzant filter () dins de map ():

El codi que es mostra a continuació comprova primer que la condició (x> = 3) sigui certa per als iterables. A continuació, la sortida es mapeja mitjançant la funció map ().

EXEMPLE:

c = mapa (lambda x: x + x, filtre (lambda x: (x> = 3), (1,2,3,4))) imprimir (llista (c))

SORTIDA: [6, 8]

Si filtreu els enters enters majors o iguals a 3 de la tupla donada, obtindreu [3,4] com a resultat. Aleshores, si mapeu això amb la condició (x + x), obtindreu [6,8], que és la sortida.

Utilitzant map () dins del filtre ():


Quan utilitzeu la funció map () dins de la funció filter (), els iterables primer són operats per la funció map i després se'ls aplica la condició de filter ().

EXEMPLE:

c = filtre (lambda x: (x> = 3), mapa (lambda x: x + x, (1,2,3,4))) #lambda x: (x> = 3) imprimir (llista (c) )

SORTIDA: [4, 6, 8]

Utilitzant map () i filter () dins de reduce ():

La sortida de les funcions internes es redueix segons la condició subministrada a la funció reduce ().

EXEMPLE:

d = reduir (lambda x, y: x + y, mapa (lambda x: x + x, filtre (lambda x: (x> = 3), (1,2,3,4)))) imprimir (d)

SORTIDA: 14

convertir binari a decimal java

La sortida és el resultat de [6,8], que és el resultat de les funcions de mapa intern () i filtre ().

Amb això, hem arribat al final d’aquest article a map (), filter () i reduir funcions a Python. Espero que ho hagueu entès tot amb claredat. Assegureu-vos de practicar el màxim possible i de recuperar la vostra experiència.

Tens alguna pregunta? Si us plau, mencioneu-lo a la secció de comentaris d’aquest bloc “map (), filter () i reduce () Functions in Python” i us respondrem el més aviat possible.

Per obtenir coneixements en profunditat sobre Python juntament amb les seves diverses aplicacions, podeu inscriure-us a la publicació amb assistència les 24 hores del dia, els 7 dies de la setmana i accés permanent