Verwendung von Enumerate in Python (Schleife mit Indizes)

Erfahren Sie, wie Sie die Funktion enumerate() in Python verwenden. Erhalten Sie sowohl den Index als auch den Wert, wenn Sie Listen mit sauberen Beispielen durchlaufen.

Probieren Sie diese Lösung im Editor aus

Übersicht

Beim Durchlaufen einer Liste, eines Tupels oder einer Zeichenfolge müssen Sie häufig den aktuellen Index jedes Elements neben dem Element selbst verfolgen. Ein gängiges Anfängermuster ist die Verwendung einer separaten Zählervariablen, die manuell erhöht wird, oder die Verwendung von „range(len(my_list))“ zum Iterieren über Indizes. Allerdings bietet Python eine weitaus elegantere, pythonischere und integriertere Lösung: die Funktion „enumerate()“.

Die Funktion „enumerate()“ verwendet ein beliebiges Iterable als Argument und gibt ein Enumerate-Objekt zurück, das Paare von Indexwert-Tupeln ergibt. Durch die Verwendung des Tupel-Entpackens in einer „for“-Schleife können Sie den Index und das Element gleichzeitig extrahieren. Dadurch entfällt der Bedarf an manuellen Zählervariablen und Indexierungsklammern vollständig, wodurch Ihr Code deutlich sauberer und weniger anfällig für Einzelfehler wird.

Standardmäßig beginnt „enumerate()“ mit der Zählung der Indizes ab „0“. Sie können jedoch einen benutzerdefinierten Startindex mit dem optionalen Schlüsselwortargument „start“ übergeben (z. B. „enumerate(items, start=1)“). Dies ist unglaublich nützlich, wenn Listennummern für menschliche Benutzer angezeigt werden, da normalerweise erwartet wird, dass Listen bei 1 und nicht bei 0 beginnen.

Code- und Ausführungsausgabe

Dieses Skript demonstriert das Durchlaufen von Listen mithilfe von enumerate, um Index-Element-Paare zu erhalten, beginnend bei 0 und 1.

fruits = ["apple", "banana", "cherry"]

# 1. Standard enumeration (starts at 0)
print("--- Standard Enumeration ---")
for index, fruit in enumerate(fruits):
    print(f"Index {index}: {fruit}")

# 2. Enumeration starting at a custom index (e.g., 1)
print("\n--- Starting at 1 ---")
for num, fruit in enumerate(fruits, start=1):
    print(f"Item #{num}: {fruit}")
Terminal-Ausgabe
--- Standard Enumeration ---
Index 0: apple
Index 1: banana
Index 2: cherry

--- Starting at 1 ---
Item #1: apple
Item #2: banana
Item #3: cherry

Schrittweise Umsetzung

  • Übergeben Sie Ihre Liste (oder eine beliebige iterierbare Liste) an die integrierte Funktion enumerate().
  • Entpacken Sie die zurückgegebenen Tupel in einer for-Schleife mit der Syntax für index, value in enumerate(list).
  • Geben Sie den Startparameter an (z. B. start=1), um den anfänglichen Indexzählerwert zu ändern.

Häufig gestellte Fragen

Ändert enumerate() die ursprüngliche Liste?

Nein, enumerate() gibt ein Lazy-Iterator-Objekt zurück und lässt die ursprüngliche Liste völlig unverändert.

Kann ich enumerate() mit einem Wörterbuch verwenden?

Ja, aber die direkte Iteration über ein Wörterbuch liefert dessen Schlüssel. Um den Indexschlüsselwert zu iterieren, verwenden Sie: for i, (k, v) in enumerate(my_dict.items()):.

Verwandte Themen

Empfohlene Python-Ressourcen

Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.