Python Funkcija map() s PRIMJERIMA
⚡ Pametni sažetak
Python map() primjenjuje zadanu funkciju na svaki element iterabilnog objekta kao što je lista, tuple, skup, rječnik ili niz znakova. Vraća lijenu mapu koja se pretvara pomoću list() ili iterira pomoću petlje.
Sintaksa
map(function, iterator1,iterator2 ...iteratorN)
Parametri
Evo dva važna parametra:
- funkcija: Obavezna funkcija koja se dodjeljuje map() i koja će se primijeniti na sve dostupne stavke u iteratoru.
- iterator: Obvezni iterabilni objekt. Može biti lista, n-torka itd. Funkciji map() možete proslijediti više objekata iteratora.
Povratna vrijednost
Funkcija map() primjenjuje zadanu funkciju na sve elemente unutar iteratora i vraća iterabilan objekt mape, tj. skup, listu itd.
Kako funkcionira funkcija map()?
Funkcija map() prima dva ulaza: funkciju i iterabilan objekt. Funkcija zadana funkciji map() je normalna funkcija i iterira kroz sve vrijednosti prisutne u iterabilnom objektu.
Na primjer, pretpostavimo da imate popis brojeva i želite pronaći kvadrat svakog od brojeva.
Za dobivanje izlaza potrebna nam je funkcija koja će vratiti kvadrat zadanog broja. Funkcija je sljedeća:
def square(n): return n*n
Popis elemenata za koje želimo pronaći kvadrat je sljedeći:
my_list = [2,3,4,5,6,7,8,9]
Sada upotrijebimo ugrađenu funkciju map() kako bismo dobili kvadrat svake od stavki u my_list.
Konačni kod je sljedeći:
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))
Izlaz:
<map object at 0x0000002C59601748>
[4, 9, 16, 25, 36, 49, 64, 81]
Izlaz funkcije map(), kao što je gore prikazano, je objekt mape prikazan na ekranu kao .
Morat ćete iterirati izlaz iz map() koristeći for-petlju ili metodu list() kako biste dobili konačni izlaz. Ja sam koristio list() u kodu za prikaz vrijednosti unutar zadane liste.
Dakle, pomoću funkcije map() možemo dobiti kvadrat svakog broja. Popis dan funkciji map() bio je [2,3,4,5,6,7,8,9], a pomoću funkcije square() dobili smo izlaz [4, 9, 16, 25, 36, 49, 64, 81].
Funkcija map() primjenjuje funkciju square() na sve stavke na popisu. Na primjer, uzima varijablu my_list i ažurira popis kvadratom svakog broja. Izlaz se pohranjuje u varijablu updated_list.
Korištenje map() sa Python ugrađene funkcije
The Python map() funkcija je ugrađena funkcija i može se koristiti s drugim ugrađenim funkcijama dostupnim u PythonU ovom primjeru ćemo koristiti Python round() je ugrađena funkcija koja zaokružuje zadane vrijednosti.
Primjer:
Popis koji imam je my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]. Trebam zaokružene vrijednosti za svaku stavku prisutnu na popisu, pa ćemo koristiti round() kao funkciju za 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))
Izlaz:
<map object at 0x000000E65F901748>
[3, 4, 4, 6, 6, 8, 8, 10]
Funkcija round() primjenjuje se na sve stavke na popisu i vraća popis sa svim zaokruženim vrijednostima, kao što je prikazano u izlazu.
Korištenje map() sa stringom kao iteratorom
Također možemo koristiti map() na nizu. U Python, niz znakova se ponaša kao niz, pa ga možemo jednostavno koristiti unutar map().
U ovom primjeru imamo funkciju myMapFunc() koja se brine za pretvaranje zadanog niza u velika slova. Funkcija myMapFunc() dodijeljena je funkciji map(). Funkcija map() će se pobrinuti za pretvaranje zadanog niza u velika slova prosljeđivanjem niza funkciji 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="")
Izlaz:
<map object at 0x000000DF2E711748>
WELCOME TO GURU99 TUTORIALS!
Korištenje map() s popisom Numbers
Za rad s listom u map(), uzet ćemo listu brojeva i pomnožiti svaki broj na listi s 10.
Popis koji ćemo koristiti je [2,3,4,5,6,7,8,9]. Funkcija myMapFunc() brine se o množenju zadanog broja s 10. Funkcija se daje map() zajedno s popisom.
Primjer:
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))
Izlaz:
<map object at 0x000000EE2C061898>
[20, 30, 40, 50, 60, 70, 80, 90]
Izlaz koji vidimo je da je svaki broj na popisu pomnožen s 10.
Korištenje map() s Tupleom
Torka je objekt u Python koji ima stavke odvojene zarezima i zatvorene u okrugle zagrade. U ovom primjeru uzet ćemo n-torku s nizom vrijednosti. Funkcija koju ćemo koristiti pretvorit će zadane vrijednosti u velika slova.
Primjer:
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))
Izlaz:
<map object at 0x0000009C3C3A16A0> ['PHP', 'JAVA', 'PYTHON', 'C++', 'C']
Izlaz koji dobivamo je povratna torka sa svim vrijednostima u njoj pretvorenim u velika slova.
Korištenje map() s rječnikom
A rječnik u Python stvara se pomoću vitičastih zagrada ({}). Budući da je rječnik iterator, možete ga koristiti unutar funkcije map(). Sada ćemo koristiti rječnik kao iterator unutar map().
Sljedeći primjer prikazuje rad iteratora rječnika unutar 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))
Izlaz:
<map object at 0x0000007EB451DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]
Korištenje map() sa Set
Set u Python je neuređena kolekcija elemenata u vitičastim zagradama ({}). Budući da je set() također iterator, možete ga koristiti unutar funkcije map().
Evo radnog primjera korištenja skupa kao iteratora unutar 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))
Izlaz:
<map object at 0x000000AC8F05DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]
Korištenje map() s Lambda funkcijom
In Python, lambda izrazi se koriste za konstruiranje anonimnih funkcija. Morat ćete koristiti ključnu riječ lambda baš kao što koristite def za definiranje normalnih funkcija.
Dakle, u ovom primjeru koristit ćemo lambda funkciju unutar map(). Lambda funkcija će pomnožiti svaku vrijednost na popisu s 10.
Primjer:
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))
Izlaz:
<map object at 0x000000BD18B11898>
[20, 30, 40, 50, 60, 70, 80, 90]
Korištenje više iteratora unutar funkcije map()
Primjer 1: Prosljeđivanje dvaju iteratora liste funkciji map()
Funkciji map() možete istovremeno poslati više od jednog iteratora, tj. listu, tuple itd.
Na primjer, ako želite dodati dvije liste, isto se može učiniti pomoću funkcije map(). Koristit ćemo dvije liste, my_list1 i my_list2.
U donjem primjeru, prva stavka s popisa my_list1 dodaje se prvoj stavci popisa my_list2. Funkcija myMapFunc() uzima stavke popisa my_list1 i my_list2 i vraća zbroj oba.
Evo radnog primjera dodavanja dvije zadane liste pomoću funkcije 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))
Izlaz:
<map object at 0x0000004D5F751860>
[6, 11, 16, 21, 26, 31, 36]
Primjer 2: Prosljeđivanje jednog Tuple-a i iteratora liste funkciji map()
U funkciji map() koristit ćemo iterator liste i n-torke. Funkcija myMapFunc() koja je dana funkciji map(), dohvatit će stavke s liste i n-torke. Stavke će biti spojene podcrtom (_). Radni primjer prikazan je u nastavku:
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))
Izlaz:
<map object at 0x00000059F37BB4E0> ['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']

