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']
