Funktionen map til iteration af objekter i Python
Lad os sige, at vi har en funktion square til
at opløfte tal i anden potens. Og der er en liste,
hvis elementer funktionen skal anvendes på:
def square(num):
return num ** 2
lst = [2, 3, 6, 8, 15]
I Python for at løse denne opgave kan man
bruge en speciel funktion map.
Den tager en funktion og en liste som parametre,
som funktionen skal anvendes på elementerne af.
Lad os bruge map til at løse
eksemplet:
res = map(square, lst)
print(res)
Hver liste, som ethvert komplekst objekt, optager meget plads i Pythons systemhukommelse. Derfor, for at spare ressourcer, returneres der ikke en ny liste efter udførelse af koden, men et specielt itererbart map-objekt:
<map object at 0x000001F16674BA00>
Lad os iterere gennem det med en løkke:
for el in res:
print(el)
Som resultat vil alle elementerne i den nye liste blive vist:
4
9
36
64
225
For at oprette en ny liste fra map-objektet
skal man anvende funktionen list på det:
lst = [2, 3, 6, 8, 15]
res = map(square, lst)
Som resultat vil følgende liste blive vist:
[4, 9, 36, 64, 225]
Også når man arbejder med funktionen map kan man
angive en lambda-funktion i den første parameter.
Lad os omskrive det forrige eksempel ved hjælp af
en lambda-funktion:
res = map(lambda num: num ** 2, lst, lst)
print(list(res))
Omskriv følgende kode med en lambda-funktion:
def func(num):
return num + 1
lst = [1, 2, 3, 4, 5]
res = map(func, lst)
print(list(res))
Omskriv følgende kode med en lambda-funktion:
def func(txt):
return txt[::-1]
lst = ['123', '456', '789']
res = map(func, lst)
print(list(res))