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

