Die map-Funktion zur Iteration von Objekten in Python
Angenommen, wir haben eine Funktion square zur
Quadrierung von Zahlen. Und es gibt eine Liste,
auf deren Elemente diese
Funktion angewendet werden muss:
def square(num):
return num ** 2
lst = [2, 3, 6, 8, 15]
In Python kann zur Lösung dieser Aufgabe
eine spezielle Funktion map verwendet werden.
Sie nimmt als Parameter die Funktion und die Liste,
auf deren Elemente sie angewendet werden soll.
Lassen Sie uns map zur Lösung
des Beispiels verwenden:
res = map(square, lst)
print(res)
Jede Liste, wie jedes komplexe Objekt, belegt viel Platz im systemeigenen Speicher von Python. Daher wird aus Ressourcengründen nach der Codeausführung nicht eine neue Liste zurückgegeben, sondern ein spezielles, iterierbares Map-Objekt:
<map object at 0x000001F16674BA00>
Lassen Sie es uns in einer Schleife durchlaufen:
for el in res:
print(el)
Als Ergebnis werden alle Elemente der neuen Liste ausgegeben:
4
9
36
64
225
Um aus dem Map-Objekt eine neue Liste zu erstellen,
muss die Funktion list auf es angewendet werden:
lst = [2, 3, 6, 8, 15]
res = map(square, lst)
Als Ergebnis wird die folgende Liste ausgegeben:
[4, 9, 36, 64, 225]
Außerdem kann beim Arbeiten mit der Funktion map
im ersten Parameter eine Lambda-Funktion angegeben werden.
Lassen Sie uns das vorherige Beispiel mit
Hilfe einer Lambda-Funktion umschreiben:
res = map(lambda num: num ** 2, lst, lst)
print(list(res))
Schreiben Sie den folgenden Code mit einer Lambda-Funktion um:
def func(num):
return num + 1
lst = [1, 2, 3, 4, 5]
res = map(func, lst)
print(list(res))
Schreiben Sie den folgenden Code mit einer Lambda-Funktion um:
def func(txt):
return txt[::-1]
lst = ['123', '456', '789']
res = map(func, lst)
print(list(res))