Python map verstehen und anwenden

Die Built-in-Python-Funktion map dient dazu, eine Funktion auf alle Elemente aus einem sogenannten Iterable anzuwenden.

Mehr als nur eine Domain!

Hier finden Sie Ihre perfekte Domain - z.B. .de Domain + persönlicher Berater

E-Mail-Postfach
24/7 Support
Wildcard SSL

Einsatzgebiete von Python map

Die Python-map-Funktion ist ein eleganter Weg, Inhalte aus Iterables zu verarbeiten. Bei Iterables handelt es sich um Python-Objekte, durch die Sie iterieren können. Darunter fallen neben Python-Listen beispielsweise auch Python Tuples. Die map-Funktion kann im Grunde anstelle einer Python-For-Loop eingesetzt werden, die jedes Element aus dem Iterable betrachtet. Hilfreich ist der Einsatz von map vor allem dann, wenn Sie auf jedes dieser Elemente ein und dieselbe Funktion anwenden möchten. Diese können Sie der Funktion dann einfach als Parameter übergeben.

Die Syntax von Pythons map-Funktion

Die Syntax von Python map ist nicht kompliziert:

map(function, iterable)

Wie Sie im Codebeispiel sehen können, nimmt die Funktion zwei Parameter entgegen. Der erste Parameter beschreibt die Funktion, die auf jedes Element Ihres Iterables angewendet werden soll, und der zweite Parameter ist ebendieses Iterable, über das Sie iterieren möchten. Die Funktion gibt ein Objekt der Python-map-Klasse zurück, auf das die von Ihnen übergebene Funktion angewendet wurde. Diesen Rückgabewert können Sie an Funktionen wie Python list() oder set() übergeben, um mit den Daten zu arbeiten.

Python map in der Praxis

Um sich das Verhalten der Python-Funktion zu veranschaulichen, ist ein Codebeispiel hilfreich:

def inkrementieren(n):
	return n + 1
zahlen = (0, 1, 2, 3, 4)
ergebnis = map(inkrementieren, zahlen)
ergebnis_liste = list(ergebnis)

Zunächst wird im Codeausschnitt eine Funktion mit dem Namen „inkrementieren“ erstellt, die eine Zahl entgegennimmt und genau das tut, was ihr Name verspricht. Dann folgt das Anlegen einer Python-Liste namens „zahlen“, die die Zahlen von 0 bis einschließlich 4 enthält. Der spannende Teil ist der Aufruf von map: Der Funktion wird als erster Übergabeparameter die im Code definierte Funktion „inkrementieren“ und als zweiter Übergabeparameter die Liste „zahlen“ übergeben. Das Resultat wird in der Variable namens „ergebnis“ gespeichert.

Damit Sie mit dem Ergebnis weiterarbeiten können, wird das Resultat in der letzten Zeile Codebeispiels in eine Liste umgewandelt. Wenn Sie sich diese Liste beispielsweise mit Python print ansehen, werden Sie feststellen, dass alle Elemente aus der an map übergebenen Liste „zahlen“ um 1 inkrementiert wurden. Auf dem Bildschirm würde also Folgendes ausgegeben: „(1, 2, 3, 4, 5)“.

Tipp

Python eignet sich auch hervorragend für den Einsatz in Webprojekten. Mit IONOS Deploy Now lassen sich Ihre Webprojekte spielend einfach via GitHub deployen und automatisch builden.

Python map mit Lambda-Funktionen

Wenn es sich bei den Funktionen, die Sie Python map übergeben, lediglich um Funktionen handelt, die Sie für die Elemente Ihres Iterables definieren möchten, kann es sinnvoll sein, die Funktion als sogenannten Lambda-Ausdruck an die map-Funktion zu übergeben. Bei einem Python-Lambda-Ausdruck handelt es sich im Grunde genommen um eine Kurzschreibweise für Funktionen, die Sie verwenden können, wenn Sie die Funktion als Übergabeparameter nutzen möchten. Da die so definierten Funktionen keinen eigenen Namen haben und nicht anderswo im Code aufgerufen werden können, spricht man auch von anonymen Funktionen.

Betrachtet man das bereits erklärte Codebeispiel zur Nutzung von Python map ein weiteres Mal, kann man die Funktion „inkrementieren“ auch durch einen passenden Lambda-Ausdruck ersetzen und so den Code verkürzen:

zahlen = (0, 1, 2, 3, 4)
ergebnis = map(lambda n: n + 1, zahlen)
ergebnis_liste = list(ergebnis)

Im Grunde ändert sich am Verhalten des Codes gar nichts. Lediglich die Funktion „inkrementieren“ wurde durch einen Lambda-Ausdruck ersetzt. Dieser wird mit dem Schlüsselwort „lambda“ eingeleitet. Danach folgt ein Parameter, den Sie ansonsten in Ihren Funktionskopf schreiben würden. Hinter dem Doppelpunkt können Sie die Rückgabe des Lambda-Ausdrucks spezifizieren. Wie Sie sehen, ist diese Variante des Codes dank des Lambda-Ausdrucks deutlich kürzer.

Mehrere Iterables an Python map übergeben

Wenn Sie zwei Iterables verarbeiten möchten, können Sie auch hierfür die Python-map-Funktion nutzen. Ein Beispiel hilft, sich zu veranschaulichen, wie die map-Funktion auf zwei Iterables angewendet wird:

a = (2, 3, 4)
b = (3, 4, 5)
ergebnis = map(lambda x, y: x + y, a, b)
ergebnis_liste = list(ergebnis)

Im obigen Beispiel wurden dieses Mal zwei Listen namens „a“ und „b“ erstellt, die jeweils drei Zahlen enthalten. Der Aufruf von map nutzt wieder eine anonyme Funktion mit einem Lambda-Ausdruck. Dieser nimmt nun aber zwei Parameter x und y entgegen und gibt deren Addition zurück. Als weitere Parameter übergeben wir beide Listen an Python map und wandeln das Resultat des Funktionsaufrufs wieder in eine Liste um. Das Ergebnis lautet „(5, 7, 9)“, da die Zahlen der beiden Listen stellenweise miteinander addiert wurden.