Python map() funkcija s PRIMJERIMA
Python map() primjenjuje funkciju na sve stavke iteratora dane kao ulaz. Iterator, na primjer, može biti popis, tuple, skup, rječnik, niz, i vraća objekt karte koji se može ponavljati. Python map() je ugrađena funkcija.
Sintaksa
map(function, iterator1,iterator2 ...iteratorN)
Parametri
Ovdje su dva važna
- funkcija: obvezna funkcija koju treba dati mapiranju, a koja će se primijeniti na sve stavke dostupne u iteratoru.
- iterator: obvezni objekt koji se može ponoviti. To može biti popis, tuple itd. Funkciji map() možete proslijediti više objekata iteratora.
Povratna vrijednost
Funkcija map() primijenit će zadanu funkciju na sve stavke unutar iteratora i vratiti objekt karte koji se može ponoviti, tj. torku, popis itd.
Kako funkcionira funkcija map()?
Funkcija map() uzima dva ulaza kao funkciju i objekt koji se može ponavljati. Funkcija koja je dana map() je normalna funkcija i ona će iterirati preko svih vrijednosti prisutnih u danom objektu koji se može ponoviti.
Na primjer, pretpostavimo da imate popis brojeva i želite pronaći kvadrat svakog od brojeva.
Da bismo dobili izlaz, potrebna nam je funkcija koja će vratiti kvadrat zadanog broja. Funkcija će biti sljedeća:
def square(n): return n*n
Popis stavki koje želimo pronaći na kvadratu je sljedeći:
my_list = [2,3,4,5,6,7,8,9]
Sada upotrijebimo ugrađenu funkciju map() python da dobijemo kvadrat svake stavke 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 se vidi u izlazu, je objekt mape prikazan na ekranu kao .
Morat ćete ponoviti izlaz iz mape koristeći for-petlju ili koristeći metodu list() da biste dobili konačni izlaz. Koristio sam list() u kodu koji prikazuje vrijednosti unutar danog popisa.
Dakle, korištenjem funkcije map() možemo dobiti kvadrat svakog broja. Popis dan za mapiranje bio je [2,3,4,5,6,7,8,9], a korištenjem funkcije square() izlaz iz map() dobili smo [4, 9, 16, 25, 36, 49, 64, 81] .
Funkcija map() primjenjuje funkciju square() na sve stavke na popisu. Na primjer, my_list varijabla i ažurira popis s kvadratom svakog broja. Izlaz je pohranjen u varijabli updated_list.
Korištenje map() sa Python ugrađene funkcije
Python map() funkcija je ugrađena funkcija i može se koristiti s drugim ugrađenim funkcijama dostupnim u Python. U primjeru koji ćemo koristiti Python round() ugrađena funkcija koja zaokružuje dane 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 na popisu. Iskoristit ćemo 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 se ponaša kao niz pa ga možemo lako koristiti unutar map().
U primjeru imamo funkciju myMapFunc() koja se brine za pretvaranje zadanog niza u velika slova. Funkcija myMapFunc () dana je funkciji map(). Funkcija map će se pobrinuti za pretvaranje niza danog u velika slova prosljeđivanjem niza u 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 listof Numbers
Za rad s popisom u map() će uzeti popis brojeva i pomnožiti svaki broj na popisu s 10.
Popis koji ćemo koristiti je: [2,3,4,5,6,7,8,9]. Funkcija myMapFunc () brine se za množenje zadanog broja s 10. Funkcija je dana za mapiranje 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]
Rezultat koji vidimo je da je svaki broj na listi
pomnoženo sa 10.
Korištenje map() s Tupleom
Torka je objekt u Python koji ima stavke odvojene zarezima i zatvorene okruglim zagradama. U primjeru ćemo uzeti torku sa string vrijednostima. Funkcija koju ćemo koristiti pretvorit će dane 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 tuple back sa svim vrijednostima u njemu pretvorenim u velika slova.
Korištenje map() s rječnikom
A rječnik u Python kreira se pomoću vitičastih zagrada({}). Budući da je rječnik iterator, možete ga koristiti unutar funkcije map(). Upotrijebimo sada rječnik kao iterator unutar map() funkcije.
Sljedeći primjer pokazuje 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
Smjestiti se Python je neuređena zbirka stavki u vitičastim zagradama(()). Budući da je set() također iterator, možete ga koristiti unutar funkcije map().
Ovdje je radni primjer 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 primjeru ćemo koristiti 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šestrukih iteratora unutar funkcije map().
Primjer 1: prosljeđivanje dva iteratora popisa u map()
Možete poslati više od jednog iteratora, tj. popis, tuple, itd. sve u isto vrijeme funkciji map().
Na primjer, ako želite dodati dva popisa. Isto se može učiniti pomoću funkcije map(). Iskoristit ćemo dvije liste my_list1 i my_list2.
U donjem primjeru, prva stavka na my_list1 dodaje se prvoj stavci my_list2. Funkcija myMapFunc() uzima stavke my_list1 i my_list2 i vraća zbroj oba.
Ovdje je radni primjer dodavanja dva zadana popisa 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 jedne torke i iteratora liste u map()
Iskoristit ćemo popis i iterator torki u funkciji map(). Funkcija je dana za mapiranje – myMapFunc() će dobiti stavke s popisa i Tuple. Stavke će biti spojene podvlakom (_). Radni primjer je prikazan 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']
rezime
- Python map() je ugrađena funkcija koja primjenjuje funkciju na sve stavke iteratora dane kao ulaz. Iterator, na primjer, može biti popis, tuple, string, itd. i vraća objekt karte koji se može ponoviti.
- Funkcija map() primijenit će zadanu funkciju na sve stavke unutar iteratora i vratiti objekt karte koji se može ponoviti, tj. torku, popis itd.
- Python map() funkcija je ugrađena funkcija i može se koristiti s drugim ugrađenim funkcijama dostupnim u Python.
- Torka je objekt u Python koji ima stavke odvojene zarezima i zatvorene okruglim zagradama. U primjeru ćemo uzeti tuple sa string vrijednostima. Funkcija koju ćemo koristiti pretvorit će dane vrijednosti u velika slova.
- Rječnik u Python kreira se pomoću vitičastih zagrada({}). Budući da je rječnik iterator, možete ga koristiti unutar funkcije map().
- Smjestiti se Python je neuređena zbirka stavki u vitičastim zagradama(()). Budući da je set() također iterator, možete ga koristiti unutar funkcije map().
- In Python, lambda izrazi (ili lambda oblici) koriste se za konstrukciju anonimnih funkcija. Stoga se ključna riječ lambda mora koristiti kada želite koristiti lambda unutar map().
- Funkciji map() možete poslati više od jednog iteratora, tj. popis, torku.