Python map() Funktion med EKSEMPLER

โšก Smart opsummering

Python map() anvender en given funktion pรฅ hvert element i en iterabel funktion, sรฅsom en liste, tuple, sรฆt, ordbog eller streng. Den returnerer et lazy map-objekt, som du konverterer med list() eller itererer ved hjรฆlp af en lรธkke.

  • ๐Ÿ”ข Syntaks: map() tager en funktion plus en eller flere iterabler og anvender denne funktion pรฅ hvert element.
  • ๐Ÿ” Returvรฆrdi: map() returnerer et dovent map-objekt, sรฅ pak det ind i list(), tuple() eller set() for at se resultaterne.
  • ๐Ÿงฉ Iterables: Lister, tupler, sรฆt, ordbรธger og strenge fungerer alle som input til map().
  • โšก Lambda: Ved at parre map() med en lambda undgรฅr man at definere en separat navngivet funktion til simple transformationer.
  • โž• Flere iterabler: Ved at sende flere iterabler anvendes funktionen parallelt pรฅ tvรฆrs af dem, stopping pรฅ det korteste.
  • ๐Ÿค– AI assistance: AI-assistenter som GitHub Copilot genererer map()-kald, og map-style transformationer feeder data pipelines i maskinlรฆring.

Python map() Funktion

Syntaks

map(function, iterator1,iterator2 ...iteratorN)

Driftsparametre

Her er to vigtige parametre:

  • fungere: En obligatorisk funktion, der skal gives til map(), og som vil blive anvendt pรฅ alle elementer, der er tilgรฆngelige i iteratoren.
  • iterator: Et obligatorisk itererbart objekt. Det kan vรฆre en liste, en tuple osv. Du kan sende flere iteratorobjekter til map()-funktionen.

Returvรฆrdi

Funktionen map() anvender den givne funktion pรฅ alle elementerne i iteratoren og returnerer et itererbart map-objekt, dvs. en tuple, en liste osv.

Hvordan fungerer map()-funktionen?

Funktionen map() tager to input: en funktion og et itererbart objekt. Funktionen givet til map() er en normal funktion, og den itererer over alle de vรฆrdier, der findes i det itererbare objekt.

Overvej for eksempel, at du har en liste over tal, og du vil finde kvadratet af hvert af tallene.

For at fรฅ outputtet skal vi bruge en funktion, der returnerer kvadratet af det givne tal. Funktionen er som fรธlger:

def square(n):
	return n*n

Listen over elementer, som vi vil finde kvadratet for, er som fรธlger:

my_list = [2,3,4,5,6,7,8,9]

Lad os nu bruge den indbyggede funktionen map() til at finde kvadratet af hvert af elementerne i my_list.

Den endelige kode er som fรธlger:

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))

Output:

<map object at 0x0000002C59601748>
[4, 9, 16, 25, 36, 49, 64, 81]

Outputtet fra map()-funktionen, som vist ovenfor, er et kortobjekt, der vises pรฅ skรฆrmen som .

Du skal iterere outputtet fra map() ved hjรฆlp af en for-loop eller list()-metoden for at fรฅ det endelige output. Jeg har brugt list() i koden til at vise vรฆrdierne i den givne liste.

Sรฅ ved at bruge map()-funktionen kan vi fรฅ kvadratet af hvert tal. Listen givet til map() var [2,3,4,5,6,7,8,9], og ved at bruge funktionen square() fik vi [4, 9, 16, 25, 36, 49, 64, 81].

Funktionen map() anvender funktionen square() pรฅ alle elementerne i listen. For eksempel tager den variablen my_list og opdaterer listen med kvadratet af hvert tal. Outputtet gemmes i variablen updated_list.

Brug af map() med Python indbyggede funktioner

Python map()-funktionen er en indbygget funktion og kan ogsรฅ bruges med andre indbyggede funktioner, der er tilgรฆngelige i PythonI dette eksempel vil vi bruge Python round() er en indbygget funktion, der afrunder de givne vรฆrdier.

Eksempel:

Den liste jeg har er my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]. Jeg har brug for de afrundede vรฆrdier for hvert element pรฅ listen, sรฅ vi bruger round() som funktionen til at mappe().

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))

Output:

<map object at 0x000000E65F901748>
[3, 4, 4, 6, 6, 8, 8, 10]

Funktionen round() anvendes pรฅ alle elementerne pรฅ listen, og den returnerer en liste med alle vรฆrdier afrundet, som vist i outputtet.

Brug af map() med en streng som en iterator

Vi kan ogsรฅ gรธre brug af map() pรฅ en streng. I Python, fungerer en streng som et array, sรฅ vi kan nemt bruge den inde i map().

I dette eksempel har vi en funktion myMapFunc(), der konverterer den givne streng til store bogstaver. Funktionen myMapFunc() gives til map()-funktionen. map()-funktionen vil konvertere den givne streng til store bogstaver ved at sende strengen til 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="")

Output:

<map object at 0x000000DF2E711748>
WELCOME TO GURU99 TUTORIALS!

Brug af map() med en liste over Numbers

For at arbejde med en liste i map() tager vi en liste af tal og ganger hvert tal i listen med 10.

Den liste, vi skal bruge, er [2,3,4,5,6,7,8,9]. Funktionen myMapFunc() sรธrger for at gange det givne tal med 10. Funktionen gives til map() sammen med listen.

Eksempel:

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))

Output:

<map object at 0x000000EE2C061898>
[20, 30, 40, 50, 60, 70, 80, 90]

Det output, vi ser, er, at hvert tal i listen ganges med 10.

Brug af map() med Tuple

En tupel er en genstand i Python der har elementer adskilt af kommaer og omsluttet af runde parenteser. I dette eksempel tager vi en tuple med strengvรฆrdier. Den funktion, vi bruger, konverterer de givne vรฆrdier til store bogstaver.

Eksempel:

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))

Output:

<map object at 0x0000009C3C3A16A0>
['PHP', 'JAVA', 'PYTHON', 'C++', 'C']

Det output, vi fรฅr, er en tuple back med alle vรฆrdierne i den konverteret til store bogstaver.

Brug af map() med ordbog

A ordbog i Python oprettes ved hjรฆlp af krรธllede parenteser ({}). Da ordbogen er en iterator, kan du bruge den i map()-funktionen. Lad os nu bruge en ordbog som en iterator i map().

Fรธlgende eksempel viser, hvordan en ordbogsiterator fungerer i 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))

Output:

<map object at 0x0000007EB451DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]

Brug af map() med Set

Et sรฆt i Python er en uordnet samling af elementer i krรธllede parenteser ({}). Da set() ogsรฅ er en iterator, kan du bruge den i map()-funktionen.

Her er et fungerende eksempel pรฅ brugen af โ€‹โ€‹et sรฆt som en iterator i 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))

Output:

<map object at 0x000000AC8F05DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]

Brug af map() med Lambda-funktion

In Python, bruges lambda-udtryk til at konstruere anonyme funktioner. Du bliver nรธdt til at bruge lambda nรธgleordet ligesom du bruger def til at definere normale funktioner.

Sรฅ i dette eksempel bruger vi lambda-funktionen i map(). Lambda-funktionen ganger hver vรฆrdi i listen med 10.

Eksempel:

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))

Output:

<map object at 0x000000BD18B11898>
[20, 30, 40, 50, 60, 70, 80, 90]

Brug af flere iteratorer i map()-funktionen

Eksempel 1: Overfรธrsel af to listeiteratorer til map()

Du kan sende mere end รฉn iterator, dvs. en liste, en tuple osv., alle pรฅ samme tid til map()-funktionen.

Hvis du for eksempel vil tilfรธje to lister, kan det samme gรธres ved hjรฆlp af map()-funktionen. Vi vil bruge to lister, my_list1 og my_list2.

I eksemplet nedenfor tilfรธjes det fรธrste element i my_list1 til det fรธrste element i my_list2. Funktionen myMapFunc() tager elementer fra my_list1 og my_list2 og returnerer summen af โ€‹โ€‹begge.

Her er et eksempel pรฅ, hvordan man tilfรธjer to givne lister ved hjรฆlp af map()-funktionen.

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))

Output:

<map object at 0x0000004D5F751860>
[6, 11, 16, 21, 26, 31, 36]

Eksempel 2: Overfรธrsel af รฉn tuple og en listeiterator til map()

Vi vil bruge en liste- og en tuple-iterator i map()-funktionen. Funktionen myMapFunc(), der er givet til map(), vil hente elementerne fra listen og tuplen. Elementerne vil blive forbundet med et understregningstegn (_). Eksemplet pรฅ arbejdet er vist nedenfor:

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))

Output:

<map object at 0x00000059F37BB4E0>
['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']

Ofte Stillede Spรธrgsmรฅl

Begge anvender en operation pรฅ hvert element. En listeforstรฅelse er ofte mere lรฆsbar og returnerer en liste direkte, mens map() returnerer et dovent map-objekt og kan vรฆre hurtigere, nรฅr en eksisterende navngivet funktion genbruges.

Nej. map() รฆndrer aldrig den oprindelige iterable. Den lรฆser hvert element, anvender din funktion og producerer et nyt lazy map-objekt, hvor kildelisten, tuplen eller strengen ikke รฆndres.

In Python 3, map() er doven: den returnerer et map-objekt, der kun beregner vรฆrdier, nรฅr det itereres. Dette sparer hukommelse pรฅ store mรฆngder data. Omslut det i list() eller lรธb hen over det for at fรฅ resultater.

map() transformerer alle elementer, filter() beholder kun elementer, der bestรฅr en test, og reduce() (fra functools) kombinerer alle elementer til en enkelt vรฆrdi. Sammen dรฆkker de transformerings-, select- og aggregeringsoperationer.

Nรฅr iterabler varierer i lรฆngde, stopper map() ved den korteste. Ekstra elementer i de lรฆngere iterabler ignoreres, sรฅ der ikke opstรฅr nogen fejl, og resultatet matcher den korteste iterable.

Nej. Et kortobjekt er en iterator, der er opbrugt efter รฉn gennemgang. Nรฅr du har gennemgรฅet det i en lรธkke eller kaldet list() pรฅ det, er det tomt. Konverter det fรธrst til en liste, hvis du har brug for at genbruge det.

I maskinlรฆring anvender map() forbehandlingsfunktioner pรฅ tvรฆrs af datasรฆt, sรฅsom skalering af tal, tokenisering af tekst eller transformering af funktioner fรธr trรฆning. Det giver en ren og funktionel mรฅde at kรธre den samme operation over mange prรธver.

Ja. GitHub Copilot fuldfรธrer automatisk map()-kald med den rigtige funktion og iterabler, og agentiske AI-vรฆrktรธjer kan omstrukturere loops til map()-udtryk og derefter kรธre dine tests for at bekrรฆfte, at adfรฆrden er uรฆndret.

Opsummer dette indlรฆg med: