Què són les funcions Lambda i com utilitzar-les?



Apreneu les funcions lambda de Python juntament amb la diferència entre les funcions normals i les funcions lambda i com es poden utilitzar a filter (), map (), reduce ().

Un nom és una convenció que s’utilitza per referir-se o dirigir-se a qualsevol entitat. Gairebé tot el que ens envolta té un nom. El món de la programació també va d'acord amb això. Però és imprescindible anomenar-ho tot? O podeu tenir alguna cosa que sigui simplement 'anònima'? La resposta és que sí. ' proporciona funcions Lambda, també conegudes com a funcions anònimes que de fet no tenen nom. Per tant, anem a conèixer aquests 'misteris anònims' de Python, en la següent seqüència.

Comencem doncs :)





Per què utilitzar Python Lambda Functions?


El propòsit principal de les funcions anònimes apareix quan es necessita alguna funció només una vegada. Es poden crear allà on siguin necessaris. Per aquest motiu, les funcions Python Lambda també es coneixen com a funcions de llançament que s'utilitzen juntament amb altres funcions predefinides com filtre (), mapa (), etc. Aquestes funcions ajuden a reduir el nombre de línies del vostre codi en comparació amb normal .

Per demostrar-ho, anem més endavant i coneixem les funcions de Python Lambda.



Què són les funcions Python Lambda?


Les funcions Python Lambda són funcions que no tenen cap nom. També es coneixen com a funcions anònimes o sense nom. La paraula 'lambda' no és un nom, sinó que és una paraula clau. Aquesta paraula clau especifica que la funció següent és anònima.

Ara que ja sou conscient de què fan referència a aquestes funcions anònimes, anem més enllà per veure com escriviu aquestes funcions Python Lambda.

Com escriure les funcions Lambda a Python?

Es crea una funció Lambda mitjançant l'operador lambda i la seva sintaxi és la següent:



SINTAXI:

arguments lambda: expressió

Python funció lambda pot tenir qualsevol nombre d’arguments, però només cal una expressió. Les entrades o arguments poden començar a 0 i pujar fins a qualsevol límit. Igual que qualsevol altra funció, està perfectament bé tenir funcions lambda sense entrades. Per tant, podeu tenir funcions lambda en qualsevol dels formats següents:

EXEMPLE:

lambda: 'Especifiqueu el propòsit'

Aquí, la funció lambda no pren cap argument.

EXEMPLE:

lambda a1: 'Especifiqueu l'ús d'un fitxer1'

Aquí, lambda pren una entrada que és un1.

és un té un java

De la mateixa manera, podeu tenir lambda a1, a2, a3..an.

Agafem uns quants exemples per demostrar-ho:

EXEMPLE 1:

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

SORTIDA: 9

EXEMPLE 2:

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

SORTIDA: 21

Com podeu veure, he pres dos exemples aquí. El primer exemple fa ús de la funció lambda amb només una expressió, mentre que el segon exemple li ha passat dos arguments. Tingueu en compte que les dues funcions tenen una expressió única seguida dels arguments. Per tant, les funcions lambda no es poden utilitzar quan necessiteu expressions de diverses línies.

D'altra banda, les funcions normals de pitó poden adoptar qualsevol nombre d'afirmacions a les seves definicions de funcions.

Com redueixen la mida del codi les funcions Anonymous?

Abans de comparar la quantitat de codi necessària, anotem primer la sintaxi de i compareu-lo amb el de les funcions lambda descrites anteriorment.

Qualsevol funció normal a Python es defineix mitjançant un def paraula clau de la següent manera:

SINTAXI:

def nom_funció (paràmetres):
declaració (s)

Com podeu veure, la quantitat de codi necessària per a una funció lambda és bastant inferior a la de les funcions normals.

Tornem a escriure l'exemple que hem pres anteriorment fent servir funcions normals ara.

EXEMPLE:

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

SORTIDA: 9

Com podeu veure, a l'exemple anterior, necessitem una declaració de retorn dins de my_func per avaluar el valor del quadrat de 3. Al contrari, la funció lambda no fa ús d'aquesta declaració de retorn, sinó que el cos de la funció anònima s'escriu a la mateixa línia que la funció mateixa, després del símbol de dos punts. Per tant, la mida de la funció és menor que la de my_func.

Tanmateix, les funcions lambda dels exemples anteriors s’anomenen utilitzant alguna altra a. Això es fa perquè aquestes funcions no tenen nom i, per tant, requereixen un nom. Però, aquest fet pot semblar confús sobre per què utilitzar aquestes funcions sense nom quan necessiteu assignar algun altre nom per anomenar-les? I, per descomptat, després d’assignar el nom a a la meva funció, ja no queda sense nom. Dret?

És una pregunta legítima, però la qüestió és que aquesta no és la manera correcta d’utilitzar aquestes funcions anònimes.

Les funcions anònimes s’utilitzen millor dins d’altres funcions d’ordre superior que utilitzen alguna funció com a argument o bé retornen una funció com a sortida. Per demostrar-ho, anem ara cap al nostre proper tema.

Funcions Python Lambda dins de les funcions definides per l'usuari:

Com s'ha esmentat anteriorment, les funcions lambda s'utilitzen en altres funcions per marcar el màxim avantatge.

L'exemple següent consisteix en new_func, que és una funció python normal que pren un argument x. Aquest argument s'afegeix a algun argument desconegut y que es proporciona mitjançant la funció lambda.

EXEMPLE:

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

SORTIDA:

6
5
Com podeu veure, a l'exemple anterior, la funció lambda que es troba dins de new_func s'anomena sempre que fem servir new_func (). Cada vegada, podem passar valors separats als arguments.

Ara que ja heu vist com utilitzar funcions anònimes dins de funcions d’ordre superior, anem ara per entendre un dels seus usos més populars que es troba als mètodes filter (), map () i reduce ().

Com s'utilitzen les funcions Anonymous a filter (), map () i reduce ():

Funcions anònimes dins filter ():

com obrir aws cli

filter ():

El mètode filter () s'utilitza per filtrar els iterables donats (llistes, conjunts, etc.) amb l'ajut d'una altra funció, passada com a argument, per provar que tots els elements siguin certs o falsos.

La sintaxi d'aquesta funció és:

SINTAXI:

filtre (funció, iterable)

Considereu ara el següent exemple:

EXEMPLE:

my_list = [2,3,4,5,6,7,8] new_list = llista (filtre (lambda a: (a / 3 == 2), my_list)) imprimeix (new_list)

SORTIDA: [6]

Aquí, la meva llista és una llista de valors iterables que es passa a la funció de filtre. Aquesta funció utilitza la funció lambda per comprovar si hi ha cap valor a la llista, que equivaldrà a 2 quan es divideix per 3. La sortida consisteix en una llista que satisfà l'expressió present dins de la funció anònima.

map ():

La funció map () de Python és una funció que aplica una funció determinada a tots els iterables i retorna una nova llista.

SINTAXI:

mapa (funció, iterable)

Prenguem un exemple per demostrar l’ús de les funcions lambda dins de la funció map ():

EXEMPLE:

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

SORTIDA:

exemple de sobrecàrrega i substitució de mètodes a Java

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

La sortida anterior mostra que, sempre que el valor dels iterables no és igual a 2 quan es divideix per 3, el resultat retornat ha de ser cert. Per tant, per a tots els elements de la meva llista, es torna vertader excepte pel valor 6 quan la condició canvia a Fals.

reduce ():

La funció reduce () s'utilitza per aplicar alguna altra funció a una llista d'elements que se li passen com a paràmetre i, finalment, retorna un valor únic.

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

SINTAXI:

reduir (funció, seqüència)

EXEMPLE:

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

L'exemple anterior es representa a la imatge següent:

reduce-python lambda-edureka

SORTIDA: 187

La sortida mostra clarament que tots els elements de la llista són afegit contínuament per retornar el resultat final.

Amb això, arribem al final d’aquest article sobre ‘Python Lambda’. Espero que tingueu clar tot el que us ha estat compartit. 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 “Python Lambda” 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.