Die Built-in-Python-Funktion map dient dazu, eine Funktion auf alle Elemente aus einem so­ge­nann­ten Iterable an­zu­wen­den.

KI-Assistent kostenlos – Ihr smarter All­tags­hel­fer
  • DSGVO-konform & sicher gehostet in Deutsch­land
  • Pro­duk­ti­vi­tät steigern – weniger Aufwand, mehr Output
  • Direkt im Browser starten – ohne In­stal­la­ti­on

Ein­satz­ge­bie­te von Python map

Die Python-map-Funktion ist ein eleganter Weg, Inhalte aus Iterables zu ver­ar­bei­ten. Bei Iterables handelt es sich um Python-Objekte, durch die Sie iterieren können. Darunter fallen neben Python-Listen bei­spiels­wei­se auch Python Tuples. Die map-Funktion kann im Grunde anstelle einer Python-For-Loop ein­ge­setzt werden, die jedes Element aus dem Iterable be­trach­tet. 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 kom­pli­ziert:

map(function, iterable)

Wie Sie im Code­bei­spiel sehen können, nimmt die Funktion zwei Parameter entgegen. Der erste Parameter be­schreibt die Funktion, die auf jedes Element Ihres Iterables an­ge­wen­det werden soll, und der zweite Parameter ist eben­die­ses Iterable, über das Sie iterieren möchten. Die Funktion gibt ein Objekt der Python-map-Klasse zurück, auf das die von Ihnen über­ge­be­ne Funktion an­ge­wen­det wurde. Diesen Rück­ga­be­wert können Sie an Funk­tio­nen 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 ver­an­schau­li­chen, ist ein Code­bei­spiel 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 Code­aus­schnitt eine Funktion mit dem Namen „in­kre­men­tie­ren“ erstellt, die eine Zahl ent­ge­gen­nimmt und genau das tut, was ihr Name ver­spricht. Dann folgt das Anlegen einer Python-Liste namens „zahlen“, die die Zahlen von 0 bis ein­schließ­lich 4 enthält. Der spannende Teil ist der Aufruf von map: Der Funktion wird als erster Über­ga­be­pa­ra­me­ter die im Code de­fi­nier­te Funktion „in­kre­men­tie­ren“ und als zweiter Über­ga­be­pa­ra­me­ter die Liste „zahlen“ übergeben. Das Resultat wird in der Variable namens „ergebnis“ ge­spei­chert.

Damit Sie mit dem Ergebnis wei­ter­ar­bei­ten können, wird das Resultat in der letzten Zeile Code­bei­spiels in eine Liste um­ge­wan­delt. Wenn Sie sich diese Liste bei­spiels­wei­se mit Python print ansehen, werden Sie fest­stel­len, dass alle Elemente aus der an map über­ge­be­nen Liste „zahlen“ um 1 in­kre­men­tiert wurden. Auf dem Bild­schirm würde also Folgendes aus­ge­ge­ben: „(1, 2, 3, 4, 5)“.

Tipp

Python eignet sich auch her­vor­ra­gend für den Einsatz in Web­pro­jek­ten. Mit IONOS Deploy Now lassen sich Ihre Web­pro­jek­te spielend einfach via GitHub deployen und au­to­ma­tisch builden.

Python map mit Lambda-Funk­tio­nen

Wenn es sich bei den Funk­tio­nen, die Sie Python map übergeben, lediglich um Funk­tio­nen handelt, die Sie für die Elemente Ihres Iterables de­fi­nie­ren möchten, kann es sinnvoll sein, die Funktion als so­ge­nann­ten Lambda-Ausdruck an die map-Funktion zu übergeben. Bei einem Python-Lambda-Ausdruck handelt es sich im Grunde genommen um eine Kurz­schreib­wei­se für Funk­tio­nen, die Sie verwenden können, wenn Sie die Funktion als Über­ga­be­pa­ra­me­ter nutzen möchten. Da die so de­fi­nier­ten Funk­tio­nen keinen eigenen Namen haben und nicht anderswo im Code auf­ge­ru­fen werden können, spricht man auch von anonymen Funk­tio­nen.

Be­trach­tet man das bereits erklärte Code­bei­spiel zur Nutzung von Python map ein weiteres Mal, kann man die Funktion „in­kre­men­tie­ren“ 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 „in­kre­men­tie­ren“ wurde durch einen Lambda-Ausdruck ersetzt. Dieser wird mit dem Schlüs­sel­wort „lambda“ ein­ge­lei­tet. Danach folgt ein Parameter, den Sie ansonsten in Ihren Funk­ti­ons­kopf schreiben würden. Hinter dem Dop­pel­punkt können Sie die Rückgabe des Lambda-Ausdrucks spe­zi­fi­zie­ren. 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 ver­ar­bei­ten möchten, können Sie auch hierfür die Python-map-Funktion nutzen. Ein Beispiel hilft, sich zu ver­an­schau­li­chen, wie die map-Funktion auf zwei Iterables an­ge­wen­det 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 Funk­ti­ons­auf­rufs wieder in eine Liste um. Das Ergebnis lautet „(5, 7, 9)“, da die Zahlen der beiden Listen stel­len­wei­se mit­ein­an­der addiert wurden.

Zum Hauptmenü