Du liest:
Das Python enumerate (mit Codebeispielen)

Das Python enumerate (mit Codebeispielen)

von Patrick
21.06.2020
Das Python enumerate

Die eingebaute Python enumerate Funktion fügt Zähler zu den Elementen eines iterierbaren Objektes (wie z.B. einer Liste) hinzu. Wie du dir das zunutze machen kannst, zeige ich dir im folgenden Artikel.

1. Das Python enumerate in der for-Schleife

Um die Anzahl der Schleifendurchläufe zu zählen, verwenden viele Programmierer ähnliche Konstruktionen wie die Folgende:

zaehler = 0
liste = ['foo', 'bar', 'baz']
for element in liste:
    print(zaehler, element)
    zaehler += 1
0 foo
1 bar
2 baz

Dieses Problem kannst du mit der eingebauten Funktion enumerate eleganter lösen. Im folgenden Beispiel wird dieselbe Liste durchlaufen, jedoch wird für jedes Element enumerate ausgeführt. In der Konsequenz wird jedem Element ein Zähler hinzugefügt.

liste = ['foo', 'bar', 'baz']
for zaehler, element in enumerate(liste):
    print(zaehler, element)
0 foo
1 bar
2 baz

2. Der optionale Parameter start

Weiterhin steht dir mit enumerate noch der optionale Parameter start zur Verfügung. Mit diesem kannst du angeben, bei welcher Zahl der Zähler beginnen soll.

for zaehler, element in enumerate(liste, start=21):
    print(zaehler, element)
21 foo
22 bar
23 baz

3. Listen aus Tupeln mit Python enumerate

Um enumerate auf eine Liste an Tupeln anzuwenden, musst du zunächst das Ergebnis von enumerate, welches selbst ein Tupel ist, entpacken. Im folgenden Beispiel wird eine Liste aus Namen-Alters-Paaren zur Veranschaulichung verwendet.

liste = [('Jonas', 18), ('Clara', 28), ('Nina', 30)]
for zaehler, (name, alter) in enumerate(liste):
    print(f'{zaehler}: {name} ist {alter} Jahre alt.')
0: Jonas ist 18 Jahre alt.
1: Clara ist 28 Jahre alt.
2: Nina ist 30 Jahre alt.

4. Fazit

Die Funktion enumerate ist äußerst praktisch, um Zähler zu Sequenzen hinzuzufügen. Sie ist im Vergleich zum Deklarieren von einer eigenen Zählervariable wesentlich eleganter und lesbarer.

Hast du noch Fragen oder Anmerkungen? Lob oder Kritik? Lass es mich bitte in den Kommentaren wissen!



Bislang gibt es keine Kommentare. Markier dein Revier und sei der Erste!

Schreibe einen Kommentar

Das könnte dich auch interessieren