Python map()-funksjon med EKSEMPLER

โšก Smart oppsummering

Python map() bruker en gitt funksjon pรฅ hvert element i en itererbar variabel, for eksempel en liste, tuple, sett, ordbok eller streng. Den returnerer et lazy map-objekt som du konverterer med list() eller itererer ved hjelp av en lรธkke.

  • ๐Ÿ”ข Syntaks: map() tar en funksjon pluss รฉn eller flere iterabler og bruker den funksjonen pรฅ hvert element.
  • ๐Ÿ” Returverdi: map() returnerer et lazy map-objekt, sรฅ pakk det inn i list(), tuple() eller set() for รฅ se resultatene.
  • ๐Ÿงฉ Iterables: Lister, tupler, sett, ordbรธker og strenger fungerer alle som input til map().
  • โšก Lambda: Ved รฅ koble map() med en lambda unngรฅr man รฅ definere en separat navngitt funksjon for enkle transformasjoner.
  • โž• Flere iterabler: ร… sende flere iterabler bruker funksjonen parallelt pรฅ tvers av dem, stoppping pรฅ det korteste.
  • ๐Ÿค– AI-hjelp: AI-assistenter som GitHub Copilot genererer map()-kall, og transformasjoner i map-stil mater datapipelines i maskinlรฆring.

Python map() Funksjon

syntax

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

Parametre

Her er to viktige parametere:

  • funksjon: En obligatorisk funksjon som skal gis til map(), som vil bli brukt pรฅ alle elementene som er tilgjengelige i iteratoren.
  • iterator: Et obligatorisk itererbart objekt. Det kan vรฆre en liste, en tuple osv. Du kan sende flere iteratorobjekter til map()-funksjonen.

Returverdi

map()-funksjonen bruker den gitte funksjonen pรฅ alle elementene i iteratoren og returnerer et itererbart map-objekt, dvs. en tuple, en liste osv.

Hvordan fungerer map()-funksjonen?

map()-funksjonen tar to inndata: en funksjon og et itererbart objekt. Funksjonen som er gitt til map() er en normalfunksjon, og den itererer over alle verdiene som finnes i det itererbare objektet.

Tenk for eksempel at du har en liste med tall, og du vil finne kvadratet til hvert av tallene.

For รฅ fรฅ resultatet trenger vi en funksjon som returnerer kvadratet av det gitte tallet. Funksjonen er som fรธlger:

def square(n):
	return n*n

Listen over elementer vi รธnsker รฅ finne kvadratet for er som fรธlger:

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

La oss nรฅ bruke den innebygde map()-funksjonen til รฅ fรฅ kvadratet av hvert av elementene i my_list.

Den endelige koden 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))

Utgang:

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

Utdataene fra map()-funksjonen, som vist ovenfor, er et kartobjekt som vises pรฅ skjermen som .

Du mรฅ iterere utdataene fra map() ved hjelp av en for-loop eller list()-metoden for รฅ fรฅ det endelige resultatet. Jeg har brukt list() i koden for รฅ vise verdiene i den gitte listen.

Sรฅ ved รฅ bruke map()-funksjonen kan vi fรฅ kvadratet av hvert tall. Listen gitt til map() var [2,3,4,5,6,7,8,9], og ved รฅ bruke funksjonen square() fikk vi [4, 9, 16, 25, 36, 49, 64, 81].

map()-funksjonen bruker funksjonen square() pรฅ alle elementene i listen. For eksempel tar den variabelen my_list og oppdaterer listen med kvadratet av hvert tall. Utdataene lagres i variabelen updated_list.

Bruker map() med Python innebygde funksjoner

Ocuco Python map()-funksjonen er en innebygd funksjon og kan ogsรฅ brukes med andre innebygde funksjoner tilgjengelig i PythonI dette eksemplet skal vi bruke Python round() innebygd funksjon som runder av de gitte verdiene.

Eksempel:

Listen jeg har er my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]. Jeg trenger de avrundede verdiene for hvert element i listen, sรฅ vi bruker round() som funksjon for รฅ 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))

Utgang:

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

Funksjonen round() brukes pรฅ alle elementene i listen, og den returnerer en liste med alle verdier avrundet, som vist i utdataene.

Bruke map() med en streng som en iterator

Vi kan ogsรฅ bruke map() pรฅ en streng. I Python, fungerer en streng som en array, sรฅ vi kan enkelt bruke den inne i map().

I dette eksemplet har vi en funksjon myMapFunc() som tar seg av รฅ konvertere den gitte strengen til store bokstaver. Funksjonen myMapFunc() er gitt til map()-funksjonen. map()-funksjonen vil ta seg av รฅ konvertere den gitte strengen til store bokstaver ved รฅ 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="")

Utgang:

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

Bruke map() med en liste over Numbers

For รฅ jobbe med en liste i map(), tar vi en liste med tall og multipliserer hvert tall i listen med 10.

Listen vi skal bruke er [2,3,4,5,6,7,8,9]. Funksjonen myMapFunc() tar seg av รฅ multiplisere det gitte tallet med 10. Funksjonen gis 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))

Utgang:

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

Resultatet vi ser er at hvert tall i listen multipliseres med 10.

Bruke map() med Tuple

En tuppel er en gjenstand i Python som har elementer atskilt med komma og omsluttet av runde parenteser. I dette eksemplet tar vi en tuple med strengverdier. Funksjonen vi bruker vil konvertere de gitte verdiene til store bokstaver.

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

Utgang:

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

Utdataene vi fรฅr er en tuple back med alle verdiene i den konvertert til store bokstaver.

Bruke map() med Dictionary

A ordbok i Python opprettes ved hjelp av krรธllparenteser ({}). Siden ordboken er en iterator, kan du bruke den inne i map()-funksjonen. La oss nรฅ bruke en ordbok som en iterator inne i map().

Fรธlgende eksempel viser hvordan en ordbokiterator 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))

Utgang:

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

Bruke map() med Set

Et sett i Python er en uordnet samling av elementer i krรธllparenteser ({}). Siden set() ogsรฅ er en iterator, kan du bruke den inne i map()-funksjonen.

Her er et fungerende eksempel pรฅ bruk av et sett 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))

Utgang:

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

Bruker map() med Lambda-funksjon

In Python, brukes lambda-uttrykk for รฅ konstruere anonyme funksjoner. Du mรฅ bruke lambda nรธkkelordet akkurat som du bruker def for รฅ definere normale funksjoner.

Sรฅ i dette eksemplet skal vi bruke lambda-funksjonen i map(). Lambda-funksjonen vil multiplisere hver verdi 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))

Utgang:

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

Bruk av flere iteratorer i map()-funksjonen

Eksempel 1: Sende to listeiteratorer til map()

Du kan sende mer enn รฉn iterator, f.eks. en liste, en tuple osv., samtidig til map()-funksjonen.

Hvis du for eksempel vil legge til to lister, kan det samme gjรธres ved hjelp av map()-funksjonen. Vi skal bruke to lister, my_list1 og my_list2.

I eksemplet nedenfor legges det fรธrste elementet i my_list1 til det fรธrste elementet i my_list2. Funksjonen myMapFunc() tar inn elementer fra my_list1 og my_list2 og returnerer summen av begge.

Her er et eksempel pรฅ hvordan man legger sammen to gitte lister ved hjelp av map()-funksjonen.

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

Utgang:

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

Eksempel 2: Sende รฉn tuple og en listeiterator til map()

Vi skal bruke en liste- og en tupel-iterator i map()-funksjonen. Funksjonen som er gitt til map(), myMapFunc(), vil hente elementene fra listen og tupelen. Elementene vil bli koblet sammen med et understrek (_). Et fungerende eksempel 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))

Utgang:

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

Spรธrsmรฅl og svar

Begge bruker en operasjon pรฅ hvert element. En listeforstรฅelse er ofte mer lesbar og returnerer en liste direkte, mens map() returnerer et lazy map-objekt og kan vรฆre raskere nรฅr man gjenbruker en eksisterende navngitt funksjon.

Nei. map() endrer aldri den opprinnelige iterablen. Den leser hvert element, bruker funksjonen din og produserer et nytt lazy map-objekt, og lar kildelisten, tuplen eller strengen vรฆre urรธrt.

In Python 3, map() er lat: den returnerer et kartobjekt som bare beregner verdier nรฅr det itereres. Dette sparer minne pรฅ store mengder data. Pakk det inn i list() eller kjรธr en lรธkke over det for รฅ fรฅ resultater.

map() transformerer alle elementer, filter() beholder kun elementer som bestรฅr en test, og reduce() (fra functools) kombinerer alle elementer til รฉn enkelt verdi. Sammen dekker de transformerings-, selekterings- og aggregeringsoperasjoner.

Nรฅr iterabler varierer i lengde, stopper map() ved den korteste. Ekstra elementer i de lengre iterablene ignoreres, slik at ingen feil oppstรฅr og resultatet samsvarer med den korteste iterablen.

Nei. Et kartobjekt er en iterator som er uttรธmt etter รฉn omgang. Nรฅr du har lรธkket gjennom det eller kalt list() pรฅ det, er det tomt. Konverter det fรธrst til en liste hvis du trenger รฅ bruke det om igjen.

I maskinlรฆring bruker map() forbehandlingsfunksjoner pรฅ tvers av datasett, for eksempel skalering av tall, tokenisering av tekst eller transformering av funksjoner fรธr trening. Det gir en ren og funksjonell mรฅte รฅ kjรธre den samme operasjonen over mange prรธver.

Ja. GitHub Copilot fullfรธrer map()-kall automatisk med riktig funksjon og iterabler, og agentiske AI-verktรธy kan omstrukturere lรธkker til map()-uttrykk, og deretter kjรธre testene dine for รฅ bekrefte at virkemรฅten er uendret.

Oppsummer dette innlegget med: