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() uzima funkciju plus jednu ili više iterabilnih objekata i primjenjuje tu funkciju na svaki element.
  • 🔁 Povratna vrijednost: map() vraća lijenu mapu, pa je omotajte u list(), tuple() ili set() da biste vidjeli rezultate.
  • 🧩 Iterabilne stavke: Liste, n-torke, skupovi, rječnici i nizovi znakova rade kao ulazi za map().
  • Lambda: Spajanje map() s lambdom izbjegava definiranje zasebne imenovane funkcije za jednostavne transformacije.
  • Više iterabilnih elemenata: Prosljeđivanjem nekoliko iterabilnih objekata funkcija se primjenjuje na njih paralelno, zaustavite seping u najkraćem mogućem roku.
  • 🤖 AI pomoć: AI asistenti poput GitHub Copilota generiraju map() pozive, a transformacije u stilu mape šalju podatke u strojno učenje.

Python funkcija map().

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

Pitanja i odgovori

Oba primjenjuju operaciju na svaku stavku. Popisno razumijevanje često je čitljivije i vraća izravno popis, dok map() vraća lijenu mapu i može biti brža pri ponovnoj upotrebi postojeće imenovane funkcije.

Ne. map() nikada ne mijenja izvorni iterabilni objekt. Čita svaki element, primjenjuje vašu funkciju i stvara novi lazy map objekt, ostavljajući izvorni popis, tuple ili string netaknutim.

In Python 3, map() je lijen: vraća objekt mape koji izračunava vrijednosti samo prilikom iteracije. To štedi memoriju kod velikih podataka. Omotajte ga u list() ili ga prođite petljom da biste dobili rezultate.

map() transformira svaku stavku, filter() zadržava samo stavke koje prolaze test, a reduce() (iz functoolsa) kombinira sve stavke u jednu vrijednost. Zajedno pokrivaju operacije transformacije, odabira i agregiranja.

Kada se iterable razlikuju po duljini, map() se zaustavlja na najkraćoj. Dodatne stavke u duljim iterablama se zanemaruju, tako da se ne javlja greška i rezultat odgovara najkraćoj iterablastoj.

Ne. Objekt mape je iterator koji se iscrpljuje nakon jednog prolaza. Nakon što ga prođete petljom ili pozovete list() na njemu, prazan je. Prvo ga pretvorite u listu ako vam je potrebna ponovna upotreba.

U strojnom učenju, map() primjenjuje funkcije predobrade na skupove podataka, kao što su skaliranje brojeva, tokenizacija teksta ili transformiranje značajki prije treniranja. Pruža čist, funkcionalan način izvođenja iste operacije na mnogim uzorcima.

Da. GitHub Copilot automatski dovršava map() pozive s pravom funkcijom i iterabilnim objektima, a agentski AI alati mogu refaktorirati petlje u map() izraze, a zatim pokrenuti vaše testove kako bi potvrdili da je ponašanje nepromijenjeno.

Sažmite ovu objavu uz: