Python unterstützt viele iterierbare Objekte: Listen, Tupel und Strings sind nur einige davon. Die for-Schleife von Python ist flexibel genug, um diese Objekte problemlos zu handhaben. Insbesondere erspart es Ihnen, sich mit dem numerischen Index jedes Eintrags selbst auseinanderzusetzen.
Aber manchmal möchten Sie mit einem Index arbeiten, um beispielsweise Elemente in einer Sammlung zu zählen oder zu filtern. Erfahren Sie, wie Sie die Python-Aufzählungsfunktion verwenden können, um eine Sequenz zu durchlaufen und dabei sowohl den Index als auch das Element zu verfolgen.
Iterieren ohne enumerate()
Betrachten Sie die folgende Python-Liste.
my_fruits = ["Äpfel", "Birnen", "Bananen"]
Angenommen, Sie möchten die Anzahl der einzelnen Elemente in der Liste verfolgen. Sie könnten verwende eine for-Schleife mit einer Angebot() funktionieren so.
zählen = 0
zum Obst in Bereich (len (meine_Früchte)):
print (count, my_fruits[count])
zählen += 1
Das funktioniert zwar, hat aber einige Mängel:
- Sie müssen die Zählung außerhalb der Schleife verfolgen.
- Sie müssen die Anzahl in jeder Iteration erhöhen.
- Sie müssen die Länge der Schleife berechnen.
- Bereich (len()) funktioniert nur mit zählbaren, indexierbaren Objekten.
Es gibt eine bessere Lösung: die Funktion enumerate().
Wie enumerate() in Python funktioniert
Die Python aufzählen() Die Funktion nimmt eine Datensammlung und gibt ein Aufzählungsobjekt zurück. Das Aufzählungsobjekt enthält einen Zähler als Schlüssel für jedes Element, das das Objekt enthält. Das aufzählen() Funktion tut dies, indem sie jedem Element eine Anzahl zuweist. Diese Anzahl entspricht der Anzahl der Iterationen, die die Funktion abgeschlossen hat, um diesen Wert zu erreichen.
Dieser Zähler erleichtert den Zugriff auf die Elemente in der Sammlung oder mutiert die Sammlung nach Möglichkeit sogar.
Mit aufzählen(), müssen Sie die Länge der Schleife oder die Anzahl der Iterationen nicht im Auge behalten. Sie können auch den expliziten Zugriff auf den Wert mit dem Indexoperator vermeiden, z. B. like Früchte[zählen]. Die Enumerate-Funktion verarbeitet automatisch alle diese Funktionen.
Die Syntax von Python enumerate()
Nachfolgend finden Sie die allgemeine Syntax für die Funktion enumerate().
aufzählen (iterierbar, start=0)
enumerate() nimmt zwei Argumente:
- iterable: eine Datensammlung oder Sequenz, über die Python iterieren kann. Z.B. eine Liste oder ein Tupel.
- start: der Index, ab dem die Aufzählungsfunktion zu zählen beginnen soll.
Wie enumerate() implementiert wird
Zu verstehen wie aufzählen() funktioniert, mal sehen, wie es tatsächlich umgesetzt wird.
defaufzählen(Reihenfolge, Start=0):
n = beginnen
zum elem in Reihenfolge:
Ertrag n, elem
n += 1
Diese Funktion, die Sie in der finden Python-Aufzählungsdokumentation, nimmt eine Sequenz und ein Startargument, das standardmäßig 0 ist.
Die Funktion initialisiert dann die n-Variable auf die Startvariable. Dadurch wird die Anzahl der Iterationen verfolgt.
In der for-Schleife, die für jedes Element in der Sequenz folgt,
- Ertrag pausiert die Ausführung der Schleife.
- Es gibt auch die aktuelle Anzahl (n) und den Wert (elem) zurück.
- Wenn die Schleife fortgesetzt wird, erhöht sie n.
Der Rückgabewert ist ein Objekt von Schlüssel-Wert-Paaren.
Wenn Sie anrufen würden aufzählen() Funktion und übergeben Sie ihr die Liste der Früchte, dies wäre der Ausgabewert.
my_fruits = ["Äpfel", "Birnen", "Bananen"]
enumerate_object = aufzählen (meine_Früchte)
print (Liste (enumerate_object))
# Ausgabe - [(0, 'Äpfel'), (1, 'Birnen'), (2, 'Bananen')]
Mit einem anderen Startindex aufzählen
Im obigen Beispiel haben wir den Startindex nicht angegeben. Das folgende Beispiel zeigt Ihnen, wie Sie den Startindex auf eine Zahl Ihrer Wahl setzen können.
Gehen Sie wie folgt vor, um bei 10 zu beginnen.
enumerate_object = aufzählen (meine_Früchte, 10)
print (Liste (enumerate_object))
# Ausgabe - [(10, 'Äpfel'), (11, 'Birnen'), (12, 'Bananen')]
Python enumerate() Beispiele
Hier sind einige Beispiele, die zeigen, wie Sie es verwenden können aufzählen() in Python.
Aufzählen einer Python-Zeichenfolge
In diesem Beispiel verwenden Sie enumerate, um den Buchstaben an Index 5 abzurufen:
my_string = "makeuseof"
zum zählen, wert in aufzählen (my_string):
wenn zählen == 5:
drucken (Wert)
# Ausgabe - s
Aufzählen eines Python-Tupels
Sie können auch verwenden aufzählen() über a iterieren Python-Tupel. In diesem Beispiel druckt das Programm in der ersten Iteration eine Kopfzeile, bevor es die Elemente anzeigt.
my_fruits_tuple = ("Äpfel", "Birnen", "Bananen")
zum Indexwert in aufzählen (my_fruits_tuple):
wenn (Index == 0):
print("Früchte:")drucken (Wert)
/*
Früchte:
Äpfel
Birnen
Bananen
*/
Aufzählen einer Python-Liste
Im folgenden Beispiel verwenden Sie enumerate, um alle Zahlen in der Liste über 10 um 2 zu verringern.
meine_nummer_liste = [10, 17, 15, 6]
zum Indexwert in aufzählen (meine_nummer_liste):
wenn (Wert > 10):
meine_nummer_liste[index] -= 2drucken (meine_nummern_liste)
# Ausgabe - [10, 15, 13, 6]
Verwenden Sie enumerate, um Ihre Iterables zu zählen
Python beinhaltet aufzählen() als eingebaute Funktion. Sie können es verwenden, um Elemente in einer iterierbaren Sammlung wie Liste, Tupel oder Zeichenfolge zu iterieren und zu zählen. Es kann Ihnen helfen, den wahren Index jedes Elements zu verfolgen, aber Sie können auch Ihren eigenen Startindex angeben. Verwenden Sie es als Alternative zum Angebot() funktionieren, wenn Sie mit Objekten arbeiten, die nicht zählbare und indizierbare Objekte sind.