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: