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.
Ü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}")--- Standard Enumeration ---
Index 0: apple
Index 1: banana
Index 2: cherry
--- Starting at 1 ---
Item #1: apple
Item #2: banana
Item #3: cherrySchrittweise 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
Erfahren Sie, wie Sie ein Python-Wörterbuch in einer Schleife durchlaufen oder iterieren. Entdecken Sie Methoden zum Durchlaufen von Schlüsseln, Werten und Schlüssel-Wert-Paaren anhand sauberer, ausführbarer Beispiele.
So ermitteln Sie die Länge einer Liste in PythonErfahren Sie, wie Sie die Länge einer Liste in Python mithilfe der Funktion len() ermitteln. Verstehen Sie die O(1)-Zeitkomplexität und die Überprüfungsanzahl.
Empfohlene Python-Ressourcen
Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.
Python-Schleifen
Erfahren Sie, wie Sie Python-Schleifen zum Durchlaufen von Daten verwenden. Beherrschen Sie Best Practices für For-Schleifen, While-Schleifen, Break, Continue und Loop anhand interaktiver Beispiele.
Spickzettel für Python-String-Methoden
Ein vollständiges Referenzhandbuch für die Python-String-Manipulation. Meistern Sie das Formatieren, Suchen, Teilen, Ersetzen und Überprüfen von Zeichenfolgeneigenschaften.
Python vs. JavaScript: Welche Programmiersprache ist die beste?
Ein umfassender Vergleich zwischen Python und JavaScript. Entdecken Sie Syntaxunterschiede, Leistung, Anwendungsfälle (Backend vs. Frontend) und Codierungsbeispiele.