Harta, filtrarea și reducerea funcțiilor în Python: tot ce trebuie să știți



Aflați ce sunt funcțiile map (), filter () și reduce () în Python. Știți, de asemenea, cum să le utilizați cu funcții lambda și definite de utilizator și împreună.

Python oferă multe funcții încorporate care sunt predefinite și pot fi utilizate de utilizatorul final prin simpla apelare a acestora. Aceste funcții nu doar ușurează munca programatorilor, ci și creează un mediu de codare standard. În acest articol, veți afla despre trei astfel de funcții impresionante și anume map (), filtrare și reducere () în .

Înainte de a merge mai departe, să aruncăm o privire asupra conținutului:





Asadar, haideti sa începem. :)

Ce sunt funcțiile map (), filter () și reduce () în Python?

Așa cum am menționat anterior, map (), filter () și reduce () sunt încorporate de Python. Aceste funcții permit aspectul funcțional al programării . În programarea funcțională, argumentele transmise sunt singurii factori care decid asupra rezultatului. Aceste funcții pot lua orice altă funcție ca parametru și pot fi furnizate și altor funcții ca parametri. Așadar, să analizăm mai profund fiecare dintre aceste funcții.



Funcția map ():

Funcția map () este un tip de ordin superior. După cum sa menționat mai devreme, această funcție ia o altă funcție ca parametru împreună cu o succesiune de iterabile și returnează o ieșire după aplicarea funcției la fiecare iterabil prezent în secvență. Sintaxa sa este următoarea:

SINTAXĂ:

hartă (funcție, iterabile)



Aici, funcția definește o expresie care este la rândul ei aplicată iterabilelor. Funcția de hartă poate lua funcții definite de utilizator, precum și funcții lambda ca parametru.

Utilizarea funcțiilor definite de utilizator și Lambda în:

Funcții definite de utilizator în cadrul map ():

Funcția map () poate lua ca parametri funcțiile definite de utilizator. Parametrii acestor funcții sunt setați exclusiv de către utilizator sau programator. De exemplu:

EXEMPLU:

def newfunc (a): return a * a x = map (newfunc, (1,2,3,4)) #x este obiectul hartă print (x) print (set (x))

IEȘIRE:

{16, 1, 4, 9}

După cum puteți vedea, x este un obiect hartă. Următoarea ieșire parțială afișează funcția hartă luând newfunc () ca parametru și apoi aplică a * a tuturor iterabilelor. Ca rezultat, valorile tuturor iterabilelor sunt multiplicate de la sine și returnate.

NOTĂ: Ieșirea nu este în ordinea valorilor iterabilelor, deoarece am folosit funcția set (). De asemenea, puteți utiliza funcțiile list () sau tuplu () de exemplu:

EXEMPLU:

def newfunc (a): return a * a x = map (newfunc, (1,2,3,4)) #x este obiectul hartă print (x) print (list (x))

IEȘIRE:

diferența dintre extinde și implementează în java

[1, 4, 9, 16]

Puteți trece și mai multe liste de parametri. De exemplu:

EXEMPLU:

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

IEȘIRE:

(3, 6, 8)

Acum, să vedem cum puteți utiliza funcții lambda în cadrul funcției map ().

Funcții Lambda în cadrul hărții ():

Funcțiile Lambda sunt funcții care au orice nume. Aceste funcții sunt adesea furnizate ca parametri pentru alte funcții. Acum să încercăm să încorporăm funcțiile lambda în funcția map (). Luați în considerare următorul exemplu:

EXEMPLU:

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

IEȘIRE:

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

Ieșirea de mai sus este un rezultat al aplicării expresiei lambda (x + 3) la fiecare element prezent în tuplu.

Funcția filter ():

Funcția filter () este utilizată pentru a crea o listă de ieșire constând din valori pentru care funcția returnează adevărat. Sintaxa acestuia este următoarea:

SINTAXĂ:

filtru (funcție, iterabile)

La fel ca map (), această funcție poate fi utilizată și poate lua funcții definite de utilizator, precum și funcții lambda ca parametru.

EXEMPLU:

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

IEȘIRE:

[3. 4]

După cum puteți vedea, y este obiectul de filtrare, iar lista este o listă de valori care sunt adevărate pentru condiție (x> = 3).

Folosind lambda în filter ():


Funcția lambda care este utilizată ca parametru definește de fapt starea care trebuie verificată. De exemplu:

EXEMPLU:

y = filtru (lambda x: (x> = 3), (1,2,3,4)) print (listă (y))

IEȘIRE: [3. 4]

Codul de mai sus produce aceeași ieșire ca funcția anterioară.

Funcția reduce ():

Funcția reduce (), așa cum descrie numele, aplică o funcție dată iterabilelor și returnează o singură valoare.

reduce-hartă reduce filtru-edureka

Sintaxa acestei funcții este următoarea:

SINTAXĂ:

reduce (funcție, iterabile)

Funcția de aici definește expresia care trebuie aplicată iterabilelor. Această funcție trebuie importată din functools modul . De exemplu:

EXEMPLU:

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

IEȘIRE: 187

În exemplul de mai sus, funcția de reducere adaugă consecutiv fiecare iterabil prezent în listă și returnează o singură ieșire.

Funcțiile map (), filter () și reduce () din Python pot fi folosite împreună.

Folosind funcțiile map (), filter () și reduce () împreună:

Când faceți acest lucru, funcțiile interne sunt mai întâi rezolvate și apoi funcțiile externe operează la ieșirea funcțiilor interne.

Să încercăm mai întâi să trecem funcția filter () ca parametru la funcția map ().

Folosind filter () în map ():

Codul de mai jos verifică mai întâi dacă starea (x> = 3) este adevărată pentru iterabile. Apoi, ieșirea este mapată utilizând funcția map ().

EXEMPLU:

c = hartă (lambda x: x + x, filtru (lambda x: (x> = 3), (1,2,3,4))) print (listă (c))

IEȘIRE: [6, 8]

Dacă filtrați numere întregi mai mari sau egale cu 3 din tuplul dat, veți obține [3,4] ca rezultat. Apoi, dacă mapați acest lucru folosind condiția (x + x), veți obține [6,8], care este ieșirea.

Folosind map () în filter ():


Când utilizați funcția map () în funcția filter (), iterabilele sunt mai întâi operate de funcția map și apoi condiția filter () li se aplică.

EXEMPLU:

c = filtru (lambda x: (x> = 3), hartă (lambda x: x + x, (1,2,3,4))) #lambda x: (x> = 3) print (list (c) )

IEȘIRE: [4, 6, 8]

Utilizând map () și filter () în cadrul reduce ():

Ieșirea funcțiilor interne este redusă în funcție de condiția furnizată funcției reduce ().

EXEMPLU:

d = reduce (lambda x, y: x + y, hartă (lambda x: x + x, filtru (lambda x: (x> = 3), (1,2,3,4)))) print (d)

IEȘIRE: 14

sortează în c ++

Rezultatul este un rezultat al [6,8], care este rezultatul funcțiilor de hartă internă () și filtru ().

Cu aceasta, am ajuns la sfârșitul acestui articol pe map (), filter () și reducem funcțiile în Python. Sper că ai înțeles totul clar. Asigurați-vă că exersați cât mai mult posibil și reveniți la experiență.

Ai o întrebare pentru noi? Vă rugăm să o menționați în secțiunea de comentarii a acestui blog „map (), filter () și reduce () Functions in Python” și vă vom contacta cât mai curând posibil.

Pentru a obține cunoștințe aprofundate despre Python împreună cu diferitele sale aplicații, vă puteți înscrie pentru live cu suport 24/7 și acces pe viață.