Python Funcția map() cu EXEMPLE
⚡ Rezumat inteligent
Python map() aplică o anumită funcție fiecărui element al unui iterabil, cum ar fi o listă, un tuplu, o mulțime, un dicționar sau un șir de caractere. Returnează un obiect map lenj pe care îl convertiți cu list() sau îl iterați folosind o buclă.

Sintaxă
map(function, iterator1,iterator2 ...iteratorN)
parametrii
Iată doi parametri importanți:
- funcţie: O funcție obligatorie care trebuie dată funcției map(), care va fi aplicată tuturor elementelor disponibile în iterator.
- iterator: Un obiect iterabil obligatoriu. Poate fi o listă, un tuplu etc. Puteți transmite mai multe obiecte iteratoare funcției map().
Valoarea retur
Funcția map() aplică funcția dată asupra tuturor elementelor din interiorul iteratorului și returnează un obiect hartă iterabil, de exemplu, un tuplu, o listă etc.
Cum funcționează funcția map()?
Funcția map() primește două intrări: o funcție și un obiect iterabil. Funcția dată funcției map() este o funcție normală și iterează peste toate valorile prezente în obiectul iterabil.
De exemplu, considerați că aveți o listă de numere și doriți să găsiți pătratul fiecăruia dintre numere.
Pentru a obține rezultatul, avem nevoie de o funcție care să returneze pătratul numărului dat. Funcția este următoarea:
def square(n): return n*n
Lista elementelor pentru care dorim să găsim pătratul este următoarea:
my_list = [2,3,4,5,6,7,8,9]
Acum să folosim funcția încorporată map() pentru a obține pătratul fiecărui element din my_list.
Codul final este următorul:
def square(n): return n*n my_list = [2,3,4,5,6,7,8,9] updated_list = map(square, my_list) print(updated_list) print(list(updated_list))
ieșire:
<map object at 0x0000002C59601748>
[4, 9, 16, 25, 36, 49, 64, 81]
Rezultatul funcției map(), așa cum se vede mai sus, este un obiect hartă afișat pe ecran ca .
Va trebui să iterezi rezultatul din map() folosind o buclă for sau metoda list() pentru a obține rezultatul final. Am folosit list() în cod pentru a afișa valorile din lista dată.
Așadar, folosind funcția map(), putem obține pătratul fiecărui număr. Lista dată funcției map() a fost [2,3,4,5,6,7,8,9], iar folosind funcția square(), rezultatul obținut este [4, 9, 16, 25, 36, 49, 64, 81].
Funcția map() aplică funcția square() asupra tuturor elementelor din listă. De exemplu, preia variabila my_list și actualizează lista cu pătratul fiecărui număr. Rezultatul este stocat în variabila updateed_list.
Folosind map() cu Python funcții încorporate
Python Funcția map() este o funcție încorporată și poate fi folosită și cu alte funcții încorporate disponibile în PythonÎn acest exemplu, vom folosi Python Funcția încorporată round() care rotunjește valorile date.
Exemplu:
Lista pe care o am este my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]. Am nevoie de valorile rotunjite pentru fiecare element prezent în listă, așa că vom folosi round() ca funcție pentru a face map().
my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907] updated_list = map(round, my_list) print(updated_list) print(list(updated_list))
ieșire:
<map object at 0x000000E65F901748>
[3, 4, 4, 6, 6, 8, 8, 10]
Funcția round() se aplică tuturor elementelor din listă și returnează o listă cu toate valorile rotunjite, așa cum se arată în rezultat.
Folosind map() cu un șir ca iterator
De asemenea, putem folosi map() pe un șir. În Python, un șir de caractere se comportă ca un array, deci îl putem folosi cu ușurință în cadrul funcției map().
În acest exemplu, avem o funcție myMapFunc() care se ocupă de convertirea șirului dat în majuscule. Funcția myMapFunc() este dată funcției map(). Funcția map() se va ocupa de convertirea șirului dat în majuscule prin transmiterea șirului către myMapFunc().
def myMapFunc(s): return s.upper() my_str = "welcome to guru99 tutorials!" updated_list = map(myMapFunc, my_str) print(updated_list) for i in updated_list: print(i, end="")
ieșire:
<map object at 0x000000DF2E711748>
WELCOME TO GURU99 TUTORIALS!
Utilizarea map() cu o listă de Numbers
Pentru a lucra cu o listă în map(), vom lua o listă de numere și vom înmulți fiecare număr din listă cu 10.
Lista pe care o vom folosi este [2,3,4,5,6,7,8,9]. Funcția myMapFunc() se ocupă de înmulțirea numărului dat cu 10. Funcția este dată funcției map() împreună cu lista.
Exemplu:
def myMapFunc(n): return n*10 my_list = [2,3,4,5,6,7,8,9] updated_list = map(myMapFunc, my_list) print(updated_list) print(list(updated_list))
ieșire:
<map object at 0x000000EE2C061898>
[20, 30, 40, 50, 60, 70, 80, 90]
Rezultatul pe care îl vedem este că fiecare număr din listă este înmulțit cu 10.
Folosind map() cu Tuple
Un tuplu este un obiect în Python care are elemente separate prin virgule și cuprinse între paranteze rotunde. În acest exemplu, vom lua un tuplu cu valori de tip șir de caractere. Funcția pe care o vom folosi va converti valorile date în majuscule.
Exemplu:
def myMapFunc(n): return n.upper() my_tuple = ('php','java','python','c++','c') updated_list = map(myMapFunc, my_tuple) print(updated_list) print(list(updated_list))
ieșire:
<map object at 0x0000009C3C3A16A0> ['PHP', 'JAVA', 'PYTHON', 'C++', 'C']
Rezultatul pe care îl obținem este un tuplu invers cu toate valorile din acesta convertite în majuscule.
Folosind map() cu Dicționar
A dicționar în Python este creat folosind acolade ({}). Deoarece dicționarul este un iterator, îl puteți utiliza în cadrul funcției map(). Să folosim acum un dicționar ca iterator în cadrul funcției map().
Următorul exemplu arată funcționarea unui iterator de dicționar în map():
def myMapFunc(n): return n*10 my_dict = {2,3,4,5,6,7,8,9} finalitems = map(myMapFunc, my_dict) print(finalitems) print(list(finalitems))
ieșire:
<map object at 0x0000007EB451DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]
Folosind map() cu Set
Un set în Python este o colecție neordonată de elemente între acolade ({}). Deoarece set() este, de asemenea, un iterator, o puteți utiliza în cadrul funcției map().
Iată un exemplu funcțional de utilizare a unui set ca iterator în cadrul funcției map():
def myMapFunc(n): return n*10 my_set = {2,3,4,5,6,7,8,9} finalitems = map(myMapFunc, my_set) print(finalitems) print(list(finalitems))
ieșire:
<map object at 0x000000AC8F05DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]
Folosind map() cu funcția Lambda
In Python, expresiile lambda sunt utilizate pentru a construi funcții anonime. Va trebui să utilizați cuvântul cheie lambda așa cum folosiți def pentru a defini funcțiile normale.
Așadar, în acest exemplu, vom folosi funcția lambda în cadrul funcției map(). Funcția lambda va înmulți fiecare valoare din listă cu 10.
Exemplu:
my_list = [2,3,4,5,6,7,8,9] updated_list = map(lambda x: x * 10, my_list) print(updated_list) print(list(updated_list))
ieșire:
<map object at 0x000000BD18B11898>
[20, 30, 40, 50, 60, 70, 80, 90]
Utilizarea mai multor iteratori în cadrul funcției map()
Exemplul 1: Transmiterea a doi iteratori de listă către map()
Puteți trimite mai mult de un iterator, de exemplu, o listă, un tuplu etc., toate simultan către funcția map().
De exemplu, dacă doriți să adăugați două liste, același lucru se poate face folosind funcția map(). Vom folosi două liste, my_list1 și my_list2.
În exemplul de mai jos, primul element din my_list1 este adăugat la primul element din my_list2. Funcția myMapFunc() preia elemente din my_list1 și my_list2 și returnează suma ambelor.
Iată un exemplu practic de adăugare a două liste date folosind funcția map().
def myMapFunc(list1, list2): return list1+list2 my_list1 = [2,3,4,5,6,7,8,9] my_list2 = [4,8,12,16,20,24,28] updated_list = map(myMapFunc, my_list1,my_list2) print(updated_list) print(list(updated_list))
ieșire:
<map object at 0x0000004D5F751860>
[6, 11, 16, 21, 26, 31, 36]
Exemplul 2: Transmiterea unui tuplu și a unui iterator de listă către map()
Vom folosi o listă și un iterator de tupluri în funcția map(). Funcția dată funcției map(), myMapFunc(), va obține elementele din listă și din tuplu. Elementele vor fi unite cu un caracter de subliniere (_). Exemplul de funcționare este prezentat mai jos:
def myMapFunc(list1, tuple1): return list1+"_"+tuple1 my_list = ['a','b', 'b', 'd', 'e'] my_tuple = ('PHP','Java','Python','C++','C') updated_list = map(myMapFunc, my_list,my_tuple) print(updated_list) print(list(updated_list))
ieșire:
<map object at 0x00000059F37BB4E0> ['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']
