Python-Enumerationate() Funktion, erklärt mit Beispielen (2024)

Python-Enumerationate() Funktion, erklärt mit Beispielen (1)

In diesem Tutorial erfahren Sie, wie Sie die verwenden aufzählenate() Funktion in Python.

Die Aufzählungate()-Funktion in Python bietet eine prägnante Syntax für den Zugriff auf die Elemente in einer Iterable zusammen mit ihren Indizes.

Wir fangen an revSehen Sie sich an, wie Sie mithilfe einfacher Schleifen auf Elemente und Indizes zugreifen, und lernen Sie anschließend die Syntax von Python kennen aufzählenate() Funktion. Wir werden nebenbei auch Beispiele codieren.

Lass uns anfangen.

So iterieren Sieate Verwendung der for-Schleife in Python

Jedes Python-Objekt, das Sie iterieren könnenate Über die einzelnen Elemente und greifen Sie darauf zu – eins nach dem anderen wird als iterierbar bezeichnet. Daher sind Python-Listen, Tupel, Wörterbücher und Zeichenfolgen alle iterierbar.

Python-Enumerationate() Funktion, erklärt mit Beispielen (2)
Python-Enumerationate() Funktion, erklärt mit Beispielen (3)
Python-Enumerationate() Funktion, erklärt mit Beispielen (4)

Nehmen wir ein Beispiel für eine Einkaufsliste, die in der Codezelle unten definiert ist.

shopping_list = ["fruits","cookies","cereals","protein bars","post-it notes"]

In Python können Sie die for Schleife, um alle Iterablen zu durchlaufen. Die Syntax dazu lautet wie folgt:

for item in <iterable>: # do something on item# item: looping variable# <iterable>: any Python iterable: list, tuple, dictionary, string, and so on.

Lassen Sie uns nun mit dieser Syntax eine Schleife durchlaufen shopping_list und auf die einzelnen Artikel zugreifen.

for item in shopping_list: print(item)# Outputfruitscookiescerealsprotein barspost-it notes

Dieses Konstrukt hilft Ihnen, direkt auf die Elemente zuzugreifen. Manchmal müssen Sie jedoch zusätzlich zu den Elementen selbst auf den Index der Elemente zugreifen.

Sie können ein verwenden index Variable, die Sie innerhalb des Schleifenkörpers erhöhen können, wie unten gezeigt:

index = 0for item in shopping_list: print(f"index:{index}, {item}") index += 1# Outputindex:0, fruitsindex:1, cookiesindex:2, cerealsindex:3, protein barsindex:4, post-it notes

Dies ist jedoch nicht die effizienteste Methode. Wenn Sie nicht daran denken, den Index zu erhöhen, funktioniert Ihr Code nicht wie erwartet.

index = 0for item in shopping_list: print(f"index:{index}, {item}") # no update of index inside loop body # index is never updated and is always 0# Outputindex:0, fruitsindex:0, cookiesindex:0, cerealsindex:0, protein barsindex:0, post-it notes

Ein weiteres häufiges Muster der Verwendung von for Schleife ist in Verbindung mit der range() Funktion. Das erfahren wir im nächsten Abschnitt.

So verwenden Sie die Funktion range () für den Zugriff auf den Index

Pythons integrierte len()-Funktion gibt die Länge eines beliebigen Python-Objekts zurück. Sie können also anrufen len() funktionieren mit shopping_list das Argument, um die Länge von zu erhalten shopping_list (was in diesem Fall 5 ist).

len(shopping_list)# Output: 5

Die Runddusche range() Die Funktion gibt ein Bereichsobjekt zurück, das Sie dann in einer Schleife verwenden können. Beim Durchschleifen range(stop), erhalten Sie die Indizes 0, 1, 2, …, stop-1.

Indem man es einstellt stop = len(list), können Sie die Liste der gültigen Indizes abrufen. Also durch die Verwendung von range() Funktion können Sie auf den Index sowie auf das entsprechende Element zugreifen, wie unten gezeigt.

for index in range(len(shopping_list)): print(f"index:{index}, item: {shopping_list[index]}")# Outputindex:0, item: fruitsindex:1, item: cookiesindex:2, item: cerealsindex:3, item: protein barsindex:4, item: post-it notes

Dies ist jedoch nicht die empfohlene Pythonic-Methode, um gleichzeitig auf Indizes und Elemente zuzugreifenneogewöhnlich.

Syntax der Python-Enumerationate() Funktion

Pythons aufzählenate() Mit der Funktion können Sie auf die Elemente zusammen mit ihren Indizes zugreifen, indem Sie die folgende allgemeine Syntax verwenden:

enumerate(<iterable>, start = 0)

In der obigen Syntax:

  • <iterable> ist eine falls angefordert -Parameter, und es kann sich um eine beliebige Python-Iteration handeln, z. B. eine Liste oder ein Tupel.
  • start ist ein optionaler Parameter, der den Index steuert, bei dem die Zählung beginnt. Wenn Sie den Wert von start nicht angeben, wird er standardmäßig verwendet zero.

Sie können jetzt anrufen enumerate() funktionieren mit shopping_list und es gibt eine Enumeration zurückate Objekt, wie in der Codezelle unten gezeigt.

enumerate(shopping_list)<enumerate at 0x7f91b4240410>

Sie können die nicht durchschleifen enumerate Objekt. Konvertieren wir also die enumerate Objekt in eine Python-Liste.

list(enumerate(shopping_list))# Output[(0, 'fruits'), (1, 'cookies'), (2, 'cereals'), (3, 'protein bars'), (4, 'post-it notes')]

Eine weitere Methode für den Zugriff auf die Elemente der enumerate Ziel ist es, die anzurufen next()-Funktion mit dem enumerate Objekt als Argument. In Python ist die next() Funktion gibt das nächste Element von einem Iterator zurück.

Internally, die next() Funktion funktioniert durch Aufrufen der __next__ -Methode für das Iteratorobjekt, um die aufeinanderfolgenden Elemente abzurufen.

Lassen Sie uns die Enumeration zuweisenate Objekt auf die Variable shopping_list_enum.

shopping_list_enum = enumerate(shopping_list)

Beim ersten Anruf next() Um die shopping_list_enum, Sie erhalten einen Index zero und das Element am Index 0: das Tupel (0, 'fruits').

Wenn Sie weiterhin mit der telefonieren next() Funktion erhalten Sie die aufeinanderfolgenden Elemente zusammen mit ihren Indizes, wie unten beschrieben.

next(shopping_list_enum)# (0, 'fruits')next(shopping_list_enum)# (1, 'cookies')next(shopping_list_enum)# (2, 'cereals')next(shopping_list_enum)# (3, 'protein bars')next(shopping_list_enum)# (4, 'post-it notes')

Was passiert, wenn du anrufst next() Funktion, nachdem Sie auf alle Elemente zugegriffen haben und das Ende der Liste erreicht haben? Du bekommst ein StopIteration Error.

next(shopping_list_enum)# ---------------------------------------------------------------------------StopIteration Traceback (most recent call last)<ipython-input-16-4220f68f6c7e> in <module>()----> 1 next(shopping_list_enum)StopIteration:

Die Runddusche enumerate() -Funktion gibt die aufeinanderfolgenden Indizes und Elemente nur bei Bedarf zurück und werden nicht im Voraus berechnet. Im Python-Projekte wo Sie die Speichereffizienz berücksichtigen müssen, können Sie versuchen, die zu verwenden enumerate() Funktion, wenn Sie große Iterables durchlaufen müssen.

Python-Enumerationate() Funktionsbeispiele

Nun, da wir die Syntax zur Verwendung von gelernt haben enumerate() Funktion, lassen Sie uns die for-Schleife ändern, die wir zuvor hatten.

Von der SrevIn diesem Abschnitt wissen wir, dass wir die Enumeration durchlaufenate Das Objekt gibt ein Tupel mit dem Index und dem Element zurück. Wir können dieses Tupel in zwei Variablen entpacken: index und item.

for index, item in enumerate(shopping_list): print(f"index:{index}, item:{item}")# Outputindex:0, item:fruitsindex:1, item:cookiesindex:2, item:cerealsindex:3, item:protein barsindex:4, item:post-it notes

Sehen wir uns als Nächstes an, wie Sie einen benutzerdefinierten Startwert angeben.

Wie man aufzähltate() mit benutzerdefiniertem Startwert

Python folgt zero Indizierung, also die start Der Wert ist standardmäßig 0. Wenn Sie die Indizes jedoch in menschenlesbarer Form benötigen – beginnend mit 1 oder einem beliebigen anderen Index Ihrer Wahl, können Sie einen benutzerdefinierten angeben start Wert.

In den shopping_list Wenn Sie beispielsweise bei 1 beginnen möchten, setzen Sie start = 1.

for index, item in enumerate(shopping_list,1): print(f"index:{index}, item:{item}")# Outputindex:1, item:fruitsindex:2, item:cookiesindex:3, item:cerealsindex:4, item:protein barsindex:5, item:post-it notes

Wenn Sie jedoch den benutzerdefinierten Startwert angeben, sollten Sie ihn unbedingt als angeben zweite positionelle Argumentation.

Wenn Sie versehentlich die Reihenfolge des iterierbaren und des Startwerts vertauschen, würden Sie auf einen Fehler stoßen, wie in der folgenden Codezelle erläutert.

for index, item in enumerate(1,shopping_list): print(f"index:{index}, item:{item}")# Output---------------------------------------------------------------------------TypeError Traceback (most recent call last)<ipython-input-12-5dbf7e2749aa> in <module>()----> 1 for index, item in enumerate(1,shopping_list): 2 print(f"index:{index}, item:{item}")TypeError: 'list' object cannot be interpreted as an integer

Um solche Fehler zu vermeiden, können Sie angeben start als Schlüsselwortargument, wie unten gezeigt.

for index, item in enumerate(shopping_list, start = 1): print(f"index:{index}, item:{item}")# Outputindex:1, item:fruitsindex:2, item:cookiesindex:3, item:cerealsindex:4, item:protein barsindex:5, item:post-it notes

Bisher haben Sie gelernt, wie man die verwendet enumerate() Funktion mit Python-Listen. Sie können auch die Enumeration verwendenate Funktion zum Durchlaufen Python-Strings, Wörterbücher und Tupel.

So verwenden Sie Enumerationate() Funktion mit Python-Tupeln

Angenommen shopping_list ist ein Tupel. In Python sind Tupel auch Sammlungen – ähnlich wie Python-Listen, aber sie sind es unveränderlich. Daher können Sie sie nicht ändern, und der Versuch, dies zu tun, führt zu Fehlern.

Das folgende Code-Snippet wird initialisiert shopping_list als Tupel.

shopping_list = ("fruits","cookies","cereals","protein bars","post-it notes")type(shopping_list)# Tuple

Wenn Sie versuchen, das erste Element im Tupel zu ändern, erhalten Sie eine Fehlermeldung, da ein Python-Tupel eine unveränderliche Sammlung ist.

shopping_list[0] = 'vegetables'# Output---------------------------------------------------------------------------TypeError Traceback (most recent call last)<ipython-input-2-ffdafa961600> in <module>()----> 1 shopping_list[0] = 'vegetables'TypeError: 'tuple' object does not support item assignment

▶ Führen Sie nun das folgende Code-Snippet aus, um zu überprüfen, ob die enumerate() Funktion funktioniert wie erwartet mit Tupeln.

shopping_list = ("fruits","cookies","cereals","protein bars","post-it notes")for index, item in enumerate(shopping_list): print(f"index:{index}, item:{item}")

So verwenden Sie Enumerationate() Funktion mit Python-Strings

Sie können auch die Python-Enumeration verwendenate()-Funktion zum Durchlaufen von Zeichenfolgen und zum gleichzeitigen Zugriff auf die Zeichen und Indizesneogewöhnlich.

Hier ist ein Beispiel.

py_str = 'Butterfly'for index, char in enumerate(py_str): print(f"index {index}: {char}")# Outputindex 0: Bindex 1: uindex 2: tindex 3: tindex 4: eindex 5: rindex 6: findex 7: lindex 8: y

Aus der obigen Ausgabe sehen wir, dass die Zeichen zusammen mit ihren Indizes (0-8) ausgedruckt wurden.

Fazit👩🏽‍💻

Hier ist eine Zusammenfassung dessen, was Sie gelernt haben.

  • Sie können verwenden for Schleifen, um auf die Elemente zuzugreifen und eine Trennung aufrechtzuerhaltenate Zähler- oder Indexvariable.
  • Wenn Sie möchten, können Sie die verwenden Reichweite() Funktion, um die gültigen Indizes zu erhalten und auf die Elemente zuzugreifen, indem sie in die Liste indizieren.
  • Als empfohlene pythonische Methode können Sie Python verwenden aufzählenate() Funktion mit der Syntax: aufzählenate(wiederholbar). Standardmäßig beginnt die Zählung oder der Index bei 0.
  • Sie können die Gewohnheit angeben Anfang Wert mit der Syntax aufzählenate(iterierbar, Start) um den Index ab dem Wert zu erhalten Anfang und die dazugehörigen Artikel.
  • Sie können die Enumeration verwendenate Funktion beim Arbeiten mit Tupeln, Zeichenfolgen, Wörterbüchern und im Allgemeinen jeder iterierbaren Python-Datei.

Ich hoffe, Sie haben dieses Tutorial auf enumer gefundenate()-Funktion hilfreich. Als nächstes erfahren Sie, wie es geht Finden Sie den Index eines Elements in Python-Listen. Codieren Sie weiter!

As an enthusiast with demonstrable expertise in Python programming, particularly in the usage of enumeration functions, let's delve into the concepts covered in the provided article.

  1. Iteration in Python: The article begins by emphasizing the concept of iteration in Python. It introduces the for loop, which is used to traverse iterable objects like lists, tuples, dictionaries, and strings.

  2. Accessing Elements and Indices: It explains how to access elements and indices using a simple for loop. The importance of using an index variable to keep track of the position is highlighted, and an example with a shopping list is given.

  3. Using range() Function: The article introduces the range() function, which is commonly used with for loops to iterate over a sequence of numbers. In this case, it's employed to iterate over the indices of a list.

  4. Introduction to enumerate() Function: The main topic is the enumerate() function, which provides a concise way to access both elements and indices simultaneously. It introduces the syntax enumerate(<iterable>, start=0).

  5. Examples of enumerate(): The article demonstrates the usage of enumerate() with a shopping list. It shows how to convert the enumerate object to a list, and it explains the usage of next() to retrieve elements sequentially.

  6. Customizing the Start Value: The article explains how to specify a custom start value for indices using the optional start parameter in enumerate().

  7. Using enumerate() with Tuples and Strings: The versatility of enumerate() is illustrated by applying it to tuples and strings, showcasing that it can be used with various iterable types.

  8. Conclusion: The article concludes by summarizing the key points covered, such as the use of for loops, range() function, and the recommended Pythonic approach of using enumerate() for simultaneous access to indices and elements in iterable objects.

In summary, the article provides a comprehensive guide to iterating over Python iterables, understanding indices, and efficiently using the enumerate() function for this purpose.

Python-Enumerationate() Funktion, erklärt mit Beispielen (2024)
Top Articles
Latest Posts
Recommended Articles
Article information

Author: Van Hayes

Last Updated:

Views: 5905

Rating: 4.6 / 5 (46 voted)

Reviews: 85% of readers found this page helpful

Author information

Name: Van Hayes

Birthday: 1994-06-07

Address: 2004 Kling Rapid, New Destiny, MT 64658-2367

Phone: +512425013758

Job: National Farming Director

Hobby: Reading, Polo, Genealogy, amateur radio, Scouting, Stand-up comedy, Cryptography

Introduction: My name is Van Hayes, I am a thankful, friendly, smiling, calm, powerful, fine, enthusiastic person who loves writing and wants to share my knowledge and understanding with you.