Python map()-funktion med EXEMPEL

โšก Smart sammanfattning

Python map() tillรคmpar en given funktion pรฅ varje element i en iterabel variabel, sรฅsom en lista, tupel, mรคngd, ordbok eller strรคng. Den returnerar ett lazy map-objekt som du konverterar med list() eller itererar med en loop.

  • ๐Ÿ”ข Syntax: map() tar en funktion plus en eller flera itererbara element och tillรคmpar den funktionen pรฅ varje element.
  • ๐Ÿ” Returvรคrde: map() returnerar ett lazy map-objekt, sรฅ omslut det med list(), tuple() eller set() fรถr att visa resultaten.
  • ๐Ÿงฉ Itererbara: Listor, tupler, mรคngder, ordbรถcker och strรคngar fungerar alla som indata fรถr map().
  • โšก Lambda: Att para ihop map() med en lambda undviker att definiera en separat namngiven funktion fรถr enkla transformationer.
  • โž• Flera itererbara versioner: Att skicka flera iterabler applicerar funktionen parallellt รถver dem, stoppaping pรฅ kortast mรถjliga tid.
  • ๐Ÿค– AI-hjรคlp: AI-assistenter som GitHub Copilot genererar map()-anrop, och map-style-transformationer matar datapipelines i maskininlรคrning.

Python map() Funktion

syntax

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

Driftparametrar

Hรคr รคr tvรฅ viktiga parametrar:

  • fungera: En obligatorisk funktion som ska ges till map(), vilken kommer att tillรคmpas pรฅ alla objekt som รคr tillgรคngliga i iteratorn.
  • iterator: Ett obligatoriskt itererbart objekt. Det kan vara en lista, en tupel, etc. Du kan skicka flera iteratorobjekt till map()-funktionen.

Returvรคrde

Funktionen map() tillรคmpar den givna funktionen pรฅ alla objekt inuti iteratorn och returnerar ett itererbart map-objekt, dvs. en tupel, en lista, etc.

Hur fungerar map()-funktionen?

Funktionen map() tar tvรฅ indata: en funktion och ett itererbart objekt. Funktionen som ges till map() รคr en normal funktion, och den itererar รถver alla vรคrden som finns i det itererbara objektet.

Tรคnk till exempel att du har en lista med siffror och att du vill hitta kvadraten pรฅ vart och ett av talen.

Fรถr att fรฅ utdata behรถver vi en funktion som returnerar kvadraten av det givna talet. Funktionen รคr som fรถljer:

def square(n):
	return n*n

Listan รถver objekt som vi vill hitta kvadraten fรถr รคr fรถljande:

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

Nu ska vi anvรคnda den inbyggda funktionen map() fรถr att fรฅ kvadraten pรฅ varje objekt i my_list.

Den slutliga koden รคr som fรถljer:

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

Produktion:

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

Utdata frรฅn map()-funktionen, som visas ovan, รคr ett kartobjekt som visas pรฅ skรคrmen som .

Du mรฅste iterera utdata frรฅn map() med hjรคlp av en for-loop eller list()-metoden fรถr att fรฅ den slutliga utdata. Jag har anvรคnt list() i koden fรถr att visa vรคrdena i den givna listan.

Sรฅ med hjรคlp av funktionen map() kan vi fรฅ kvadraten pรฅ varje tal. Listan som gavs till map() var [2,3,4,5,6,7,8,9], och med funktionen square() fick vi utdata [4, 9, 16, 25, 36, 49, 64, 81].

Funktionen map() tillรคmpar funktionen square() pรฅ alla objekt i listan. Till exempel tar den variabeln my_list och uppdaterar listan med kvadraten av varje tal. Utdata lagras i variabeln updated_list.

Anvรคnder map() med Python inbyggda funktioner

Ocuco-landskapet Python map()-funktionen รคr en inbyggd funktion och kan รคven anvรคndas med andra inbyggda funktioner som finns i PythonI det hรคr exemplet kommer vi att anvรคnda oss av Python round() inbyggd funktion som avrundar de givna vรคrdena.

Exempel:

Listan jag har รคr my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]. Jag behรถver de avrundade vรคrdena fรถr varje objekt som finns i listan, sรฅ vi kommer att anvรคnda round() som funktion fรถr att mappa().

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

Produktion:

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

Funktionen round() tillรคmpas pรฅ alla objekt i listan och returnerar en lista med alla vรคrden avrundade, som visas i utdata.

Anvรคnder map() med en strรคng som en iterator

Vi kan ocksรฅ anvรคnda map() pรฅ en strรคng. I Python, en strรคng fungerar som en array, sรฅ vi kan enkelt anvรคnda den inuti map().

I det hรคr exemplet har vi en funktion myMapFunc() som tar hand om att konvertera den givna strรคngen till versaler. Funktionen myMapFunc() ges till map()-funktionen. map()-funktionen tar hand om att konvertera den givna strรคngen till versaler genom att skicka strรคngen till 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="")

Produktion:

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

Anvรคnda map() med en lista รถver Numbers

Fรถr att arbeta med en lista i map() tar vi en lista med tal och multiplicerar varje tal i listan med 10.

Listan vi ska anvรคnda รคr [2,3,4,5,6,7,8,9]. Funktionen myMapFunc() tar hand om att multiplicera det givna talet med 10. Funktionen ges till map() tillsammans med listan.

Exempel:

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

Produktion:

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

Utdata vi ser รคr att varje tal i listan multipliceras med 10.

Anvรคnder map() med Tuple

En tuppel รคr ett fรถremรฅl i Python som har objekt separerade med kommatecken och omgivna av runda parenteser. I det hรคr exemplet tar vi en tupel med strรคngvรคrden. Funktionen vi anvรคnder kommer att konvertera de givna vรคrdena till versaler.

Exempel:

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

Produktion:

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

Utdata vi fรฅr รคr en tupel bakรฅt med alla vรคrden i den konverterade till versaler.

Anvรคnda map() med Dictionary

A ordbok i Python skapas med hjรคlp av klammerparenteser ({}). Eftersom ordboken รคr en iterator kan du anvรคnda den inuti map()-funktionen. Lรฅt oss nu anvรคnda en ordbok som en iterator inuti map().

Fรถljande exempel visar hur en ordboksiterator fungerar inuti 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))

Produktion:

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

Anvรคnder map() med Set

En uppsรคttning i Python รคr en oordnad samling av objekt inom klammerparenteser ({}). Eftersom set() ocksรฅ รคr en iterator kan du anvรคnda den inuti map()-funktionen.

Hรคr รคr ett fungerande exempel pรฅ hur man anvรคnder en uppsรคttning som en iterator inuti 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))

Produktion:

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

Anvรคnder map() med Lambda-funktion

In Python, anvรคnds lambda-uttryck fรถr att konstruera anonyma funktioner. Du mรฅste anvรคnda nyckelordet lambda precis som du anvรคnder def fรถr att definiera normala funktioner.

Sรฅ i det hรคr exemplet ska vi anvรคnda lambdafunktionen i map(). Lambdafunktionen multiplicerar varje vรคrde i listan med 10.

Exempel:

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

Produktion:

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

Anvรคnda flera iteratorer inuti map()-funktionen

Exempel 1: Skicka tvรฅ listiteratorer till map()

Du kan skicka mer รคn en iterator, dvs. en lista, en tupel etc., samtidigt till map()-funktionen.

Om du till exempel vill lรคgga till tvรฅ listor kan du gรถra samma sak med hjรคlp av funktionen map(). Vi kommer att anvรคnda tvรฅ listor, my_list1 och my_list2.

I exemplet nedan lรคggs det fรถrsta objektet i my_list1 till det fรถrsta objektet i my_list2. Funktionen myMapFunc() tar in objekt frรฅn my_list1 och my_list2 och returnerar summan av bรฅda.

Hรคr รคr ett exempel pรฅ hur man lรคgger till tvรฅ givna listor med hjรคlp av funktionen 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))

Produktion:

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

Exempel 2: Skicka en tupel och en listiterator till map()

Vi kommer att anvรคnda en lista och en tupel-iterator i map()-funktionen. Funktionen som ges till map(), myMapFunc(), kommer att hรคmta objekten frรฅn listan och tupeln. Objekten kommer att kopplas samman med ett understreck (_). Exemplet visas nedan:

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

Produktion:

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

Vanliga frรฅgor

Bรฅda tillรคmpar en operation pรฅ varje objekt. En listfรถrstรฅelse รคr ofta mer lรคsbar och returnerar en lista direkt, medan map() returnerar ett lazy map-objekt och kan vara snabbare vid รฅteranvรคndning av en befintlig namngiven funktion.

Nej. map() รคndrar aldrig den ursprungliga itererbara filen. Den lรคser varje element, tillรคmpar din funktion och producerar ett nytt lazy map-objekt, vilket lรคmnar kรคllistan, tupeln eller strรคngen orรถrd.

In Python 3, map() รคr lat: den returnerar ett map-objekt som endast berรคknar vรคrden nรคr det itereras. Detta sparar minne pรฅ stora datamรคngder. Slรฅ in det i list() eller loopa รถver det fรถr att fรฅ resultat.

map() transformerar varje objekt, filter() behรฅller endast objekt som klarar ett test, och reduce() (frรฅn functools) kombinerar alla objekt till ett enda vรคrde. Tillsammans tรคcker de transformerings-, select- och aggregeringsoperationer.

Nรคr iterabler skiljer sig รฅt i lรคngd stannar map() vid den kortaste. Extra element i de lรคngre iterablerna ignoreras, sรฅ inget fel genereras och resultatet matchar den kortaste iterablen.

Nej. Ett kartobjekt รคr en iterator som รคr slut efter ett pass. Nรคr du loopar igenom det eller anropar list() pรฅ det รคr det tomt. Konvertera det fรถrst till en lista om du behรถver รฅteranvรคnda det.

Inom maskininlรคrning tillรคmpar map() fรถrbehandlingsfunktioner รถver datauppsรคttningar, sรฅsom att skala tal, tokenisera text eller transformera funktioner fรถre trรคning. Det ger ett rent och funktionellt sรคtt att kรถra samma operation รถver mรฅnga exempel.

Ja. GitHub Copilot autokompletterar map()-anrop med rรคtt funktion och iterabler, och agentiska AI-verktyg kan omfaktorera loopar till map()-uttryck och sedan kรถra dina tester fรถr att bekrรคfta att beteendet รคr ofรถrรคndrat.

Sammanfatta detta inlรคgg med: