Python

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

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

Dieser Artikel erklärt die Verwendung der Funktion „enumerate“, 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 einer 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:

für (int i = 0; i < 10; i++)

printf("%d\n", i);

Die Schleifenanweisung initialisiert eine Variable mit dem Wert Null, prü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 allen Objekten zuweisen, auf die in Ihrem Schleifenblock verwiesen wird. Im Vergleich dazu sieht eine for-Schleife mit demselben Ergebnis in Python so aus:

für i im Bereich (0, 10):
drucken (i)

Mit der Funktion „range“ in Python können Sie eine Nummernkreissequenz angeben, die einen Standardschritt von 1 hat. Sie können den Schrittwert ändern, indem Sie ein drittes Argument angeben. Das zweite Argument in der Funktion „Bereich“ 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 Funktion "yield" für jeden iterierbaren Typ verwenden, um ihnen eine Art nachverfolgbare Anzahl zuzuweisen. Die Methode „enumerate“ erleichtert die Zuweisung von Indizes zu Iterablen in einer Anweisung, wodurch die Ausführung mehrerer verschachtelter Schleifen überflüssig wird. Sehen Sie sich dieses Codebeispiel an:

Zahlen = ["null", "eins", "zwei", "drei", "vier", "fünf"]
enumerated_numbers = aufzählen (Zahlen)
für Index, Element in enumerated_numbers:
drucken (Index, Artikel)

Die erste Anweisung definiert eine neue Variable namens „Zahlen“ und weist ihr eine Iterable (Listentyp) zu. Die zweite Anweisung zeigt die Verwendung der Funktion „enumerate“, bei der Sie ein Iterable als obligatorisches Argument angeben. Die dritte Anweisung wandelt die Variable „enumerated_numbers“ in ein Listentyp-Objekt um. Standardmäßig generiert die Funktion „enumerate“ ein Objekt vom Typ „enumerate“ 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 Funktion „enumerate“ 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", "eins", "zwei", "drei", "vier", "fünf"]
enumerated_numbers = aufzählen (Zahlen)
für Index, Element in enumerated_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 Funktion „enumerate“ inline verwenden, wie im folgenden Beispiel gezeigt:

Zahlen = ["null", "eins", "zwei", "drei", "vier", "fünf"]
für Index, Element in Aufzählung (Zahlen):
drucken (Index, Artikel)

Verwenden von Enumerate mit einem anderen Startindex

Die Funktion „enumerate“ 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 Argument "start" verwenden:

Zahlen = ["eins", "zwei", "drei", "vier", "fünf"]
für index, item in enumerate(numbers, start=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 Funktion „enumerate“ in Python verfügt über kein solches Argument, sodass Sie keinen Schritt zwischen den Zählungen angeben können. Sie können in der Tat 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 den Funktionen „zip“ und „range“:

Zahlen = ["null", "zwei", "vier", "sechs"]
für index, item in zip(range(0, 7, 2), numbers):
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 dem iterierbaren Rückgabewert von „range(0, 7, 2)“ und ein weiteres Element aus der „Zahlen“-Liste auf und paart beide dann zu einem Tupel. Das Endergebnis ist eine identische Implementierung wie die Funktion „enumerate“, jedoch mit benutzerdefinierten Schritten, die als drittes Argument in der Funktion „range(0, 7, 2)“ angegeben sind (in diesem Fall 2). Nachdem Sie das oben angegebene Codebeispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

0 null
2 zwei
4 vier
6 sechs

Fazit

Mit der Funktion „enumerate“ 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.

So zeigen Sie den FPS-Zähler in Linux-Spielen an
Linux-Gaming bekam einen großen Schub, als Valve 2012 die Linux-Unterstützung für den Steam-Client und seine Spiele ankündigte. Seitdem haben viele AA...
Herunterladen und Spielen von Sid Meier's Civilization VI unter Linux and
Einführung in das Spiel Civilization 6 ist eine moderne Version des klassischen Konzepts, das in der Reihe der Age of Empires-Spiele eingeführt wurde....
So installieren und spielen Sie Doom unter Linux
Einführung in Doom Die Doom-Serie entstand in den 90er Jahren nach der Veröffentlichung des ursprünglichen Doom. Es war sofort ein Hit und seitdem hat...