Python map – Einfache Erklärung (Deutsch) mit Beispiel

Die map-Funktion können wir in Python dafür verwenden, um eine bestimmte Funktion auf alle Elemente einer z.B. einer Liste anzuwenden. Die Syntax für die map-Funktion sieht dabei wie folgt aus:

map(function, elemente)

function ist einfach die Funktion, die auf die Elemente angewendet werden soll.

Füllen wir das Ganze direkt mal mit etwas Leben und schauen uns ein Beispiel an.

Wir könnten zum Beispiel eine Liste von Zahlen haben, die wir verdoppeln wollen.

meine_liste = [1, 4, 6, 25, 62]

Dafür schreiben wir uns einfach eine Funktion, die genau das macht:

def verdoppeln(zahl):
    return zahl*2


meine_liste = [1, 4, 6, 25, 62]

Die Funktion nimmt jetzt erstmal immer nur eine Zahl entgegen und gibt eine Zahl zurück. Mit map() können wir diese Funktion jetzt aber einmal über die komplette Liste rauschen lassen.

def verdoppeln(zahl):
    return zahl*2


meine_liste = [1, 4, 6, 25, 62]
print(map(verdoppeln, meine_liste))

# Ergebnis:
# <map object at 0x104ff3c10>

Die map-Funktion gibt jetzt ein sogenanntes Map-Objekt zurück, das die verarbeiteten Elemente enthält. Um die Elemente tatsächlich zu sehen, kann man das Map-Objekt jetzt z.B. wieder in eine Liste umwandeln.

Hier ist ein Beispiel, wie man die map-Funktion verwenden kann, um eine Funktion auf alle Elemente einer Liste anzuwenden:

def verdoppeln(zahl):
    return zahl*2


meine_liste = [1, 4, 6, 25, 62]
ergebnis = list(map(verdoppeln, meine_liste))
print(ergebnis)

# Ergebnis:
# [2, 8, 12, 50, 124]

Und so einfach ist es also, eine Funktion auf mehrere Elemente anzuwenden. Das Ganze funktioniert übrigens nicht nur mit Listen, sondern auch mit Tuples, Zeichenketten und so weiter.

Ein schöner Trick ist übrigens auch noch, dass wir, wenn wir map benutzen, unserer Funktion noch nicht mal einen Namen geben müssen.

meine_liste = [1, 4, 6, 25, 62]
ergebnis = list(map(lambda zahl: zahl*2, meine_liste))
print(ergebnis)

# Ergebnis:
# [2, 8, 12, 50, 124]

Und wie man sehen kann: Das Ergebnis bleibt gleich.