Verwenden Sie die Aufzählungsfunktion in Python, um Schleifen mit Zählern zu erstellen

Use Enumerate Function Python Create Loops With Counters



In diesem Artikel wird die Verwendung der Aufzählungsfunktion erläutert, die in der Standardmodulbibliothek von Python verfügbar ist. Mit der Aufzählungsfunktion können Sie Elementen in jedem iterierbaren Objekt einen Index oder eine Zählung zuweisen. Sie können dann weitere Logik für sie implementieren, da Sie Zugriff auf beide Werte und eine ihnen zugeordnete Anzahl haben.

Syntax und einfaches Beispiel

Wenn Sie eine for-Schleife in anderen Programmiersprachen verwendet haben, insbesondere in der Sprache C und anderen Sprachen mit Syntax im C-Stil, haben Sie möglicherweise einen Startindex in der Schleife angegeben. Als Referenz sehen Sie hier, wie eine for-Schleife in C und anderen Sprachen mit ähnlicher Syntax aussieht:







zum (intich= 0;ich< 10;ich++)

{

druckenf ('%D ',ich);

}

Die Schleifenanweisung initialisiert eine Variable mit einem Wert von Null, überprüft, ob sie kleiner als ein Schwellenwert ist, und erhöht sie um einen Zähler, nachdem die Logik innerhalb des Schleifenblocks ausgewertet wurde (wenn die Stoppbedingung erfüllt ist). Auf diese Weise können Sie einen Index verwenden und ihn beliebigen Objekten zuweisen, auf die in Ihrem Schleifenblock verwiesen wird. Im Vergleich dazu sieht eine for-Schleife mit demselben Ergebnis in Python so aus:



zumichin Bereich(0, 10):

drucken (ich)

Mit der range-Funktion in Python können Sie eine Nummernkreissequenz mit einem Standardschritt von 1 angeben. Sie können den Schrittwert ändern, indem Sie ein drittes Argument angeben. Das zweite Argument in der Bereichsfunktion wird verwendet, um den Schwellenwert für die Stoppbedingung festzulegen. Beide Codebeispiele erzeugen die folgende Ausgabe:



0

1

2

3

4

5

6

7

8

9

Diese Schleifen funktionieren gut, wenn Sie nur eine Zahlenfolge generieren und sie mit einer Logik innerhalb der Schleifenanweisung verknüpfen möchten. Möglicherweise müssen Sie jedoch eine andere verschachtelte Schleife verwenden oder die Yield-Funktion für jeden iterierbaren Typ verwenden, um ihnen eine Art nachverfolgbare Anzahl zuzuweisen. Die enumerate-Methode erleichtert das Zuweisen von Indizes zu Iterablen in einer Anweisung, wodurch das Ausführen mehrerer verschachtelter Schleifen entfällt. Sehen Sie sich dieses Codebeispiel an:





Zahlen= ['Null', 'einer', 'zwei', 'drei', 'vier', 'fünf']

enumerated_numbers= gelistet(Zahlen)

zumIndex,Artikelinenumerated_numbers:

drucken (Index,Artikel)

Die erste Anweisung definiert eine neue Variable namens Numbers und weist ihr ein Iterable (Listentyp) zu. Die zweite Anweisung zeigt die Verwendung der Aufzählungsfunktion, bei der Sie eine Iterable als obligatorisches Argument angeben. Die dritte Anweisung konvertiert die Variable enumerated_numbers in ein Listentyp-Objekt. Standardmäßig generiert die Aufzählungsfunktion ein Aufzählungstypobjekt und keinen iterierbaren Typ, sodass Sie es konvertieren müssen. Nachdem Sie das oben erwähnte Codebeispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

[(0, 'null'), (1, 'eins'), (2, 'zwei'), (3, 'drei'), (4, 'vier'), (5, 'fünf')]

Die Aufzählungsfunktion weist jedem Element in einem iterierbaren Typ eine Anzahl zu und erstellt Tupel mit gepaarten Werten. Standardmäßig beginnt die Zählung bei Null.



Nachdem Sie nun jedem Element in einem iterierbaren Typ eine Zahl zugewiesen haben, können Sie es problemlos durchlaufen, ohne verschachtelte Anweisungen zu schreiben:

Zahlen= ['Null', 'einer', 'zwei', 'drei', 'vier', 'fünf']

enumerated_numbers= gelistet(Zahlen)

zumIndex,Artikelinenumerated_numbers:

drucken (Index,Artikel)

Das oben angegebene Codebeispiel erzeugt die folgende Ausgabe:

0 null

1 Eins

2 zwei

3 drei

4 vier

5 fünf

Sie können den Code verkürzen, indem Sie die Aufzählungsfunktion inline verwenden, wie im folgenden Beispiel gezeigt:

Zahlen= ['Null', 'einer', 'zwei', 'drei', 'vier', 'fünf']

zumIndex,Artikelin gelistet(Zahlen):

drucken (Index,Artikel)

Verwenden von Enumerate mit einem anderen Startindex

Die Aufzählungsfunktion nimmt ein optionales Argument entgegen, bei dem Sie einen Startindex angeben können. Standardmäßig ist es Null, aber Sie können es ändern, indem Sie das Startargument verwenden:

Zahlen= ['einer', 'zwei', 'drei', 'vier', 'fünf']

zumIndex,Artikelin gelistet(Zahlen,Anfang=1):

drucken (Index,Artikel)

In der zweiten Anweisung wird das Argument start=1 verwendet, um den Startpunkt zu ändern. Nachdem Sie das oben angegebene Codebeispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

1 Eins

2 zwei

3 drei

4 vier

5 fünf

Index mit Schritten zuweisen

Im ersten Abschnitt dieses Artikels wird die Syntax für die for-Schleife in der Sprache C gezeigt, in der Sie Schritte zwischen jeder nachfolgenden Zählung oder jedem Index definieren können. Die Aufzählungsfunktion in Python verfügt über kein solches Argument, sodass Sie keinen Schritt zwischen den Zählungen angeben können. Sie können tatsächlich Ihre eigene Logik schreiben, um Schritte innerhalb des aufgezählten for-Schleifenblocks zu implementieren. Es gibt jedoch eine Möglichkeit, benutzerdefinierte Schritte durch das Schreiben von minimalem Code zu implementieren. Das folgende Beispiel zeigt die Implementierung von Schritten mit Zip- und Range-Funktionen:

Zahlen= ['Null', 'zwei', 'vier', 'sechs']

zumIndex,Artikelin Postleitzahl(Bereich(0, 7, 2),Zahlen):

drucken (Index,Artikel)

Mit der Zip-Funktion können Sie Paare erstellen, indem Sie Elemente mit demselben Index aus zwei oder mehr Iterables aufnehmen. Die zip-Funktion hier nimmt also ein Element aus der iterierbaren, von range(0, 7, 2) zurückgegebenen Funktion und ein weiteres Element aus der Zahlenliste auf und paart beide dann zu einem Tupel. Das Endergebnis ist eine identische Implementierung wie die Aufzählungsfunktion, jedoch mit benutzerdefinierten Schritten, die als drittes Argument in der range(0, 7, 2)-Funktion (2 in diesem Fall) angegeben sind. Nachdem Sie das oben angegebene Codebeispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

0 null

2 zwei

4 vier

6 sechs

Abschluss

Mit der Aufzählungsfunktion in Python können Sie prägnanten Code schreiben, indem Sie Elementen in einem iterierbaren Objekt eine Zahlenfolge zuweisen. Dies ist sehr nützlich, wenn Sie den Index von Elementen innerhalb eines iterierbaren Typs verfolgen möchten. Wenn Sie iterierbare Typen mit benutzerdefinierten Schritten aufzählen möchten, verwenden Sie die im letzten Beispiel erläuterte Zip-Funktion.