Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Python-Iterierbare Objekte: Verständnis von Sequenzen und Datenstrukturen | Iteratoren und Generatoren
Quizzes & Challenges
Quizzes
Challenges
/
Python Fortgeschrittene Konzepte

bookPython-Iterierbare Objekte: Verständnis von Sequenzen und Datenstrukturen

Was sind Iterables?

In Python sind Iterables Objekte, die durchlaufen oder überiteriert werden können, wobei ihre Elemente nacheinander zurückgegeben werden. Diese Fähigkeit, jeweils ein Element zu liefern, macht sie unverzichtbar für Aufgaben wie Schleifen, Comprehensions und Entpacken.

Zu den häufigsten Iterables gehören:

  • Datenstrukturen: Listen, Tupel, Dictionaries, Sets;
  • Strings: geben ihre Zeichen einzeln zurück;
  • Eigene Objekte: werden durch Implementierung der Methode __iter__ iterierbar gemacht.

Ein zentrales Merkmal von Iterables ist, dass sie sich beim Durchlaufen ihre Position nicht von selbst "merken". Um ihre Elemente tatsächlich zu durchlaufen, benötigen sie einen Iterator.

1234567
numbers = [1, 2, 3, 4] for num in numbers: print(num) title = "codefinity" for char in title: print(char)
copy

Die for-Schleife durchläuft automatisch die Elemente des Iterables und verarbeitet sie einzeln.

Wenn Python ein Iterable verarbeitet, wandelt es das Objekt mit der Funktion iter() in einen Iterator um. Intern ruft iter() die Methode __iter__() des Objekts auf. Ebenso ruft die Funktion next() den nächsten Wert aus dem Iterator ab, indem sie dessen Methode __next__() aufruft.

Das folgende Beispiel zeigt, wie dies funktioniert:

12345678910
numbers = [1, 2, 3, 4] # Converting the list to an iterator numbers_iterator = iter(numbers) # Accessing elements one at a time using `next()` print(next(numbers_iterator)) # Output: 1 print(next(numbers_iterator)) # Output: 2 print(next(numbers_iterator)) # Output: 3 print(next(numbers_iterator)) # Output: 4 print(next(numbers_iterator)) # Output: StopIteration
copy

Iterierbare Objekte vs. Iteratoren

Während alle Iteratoren iterierbar sind, sind nicht alle iterierbaren Objekte Iteratoren. Ein Iterator merkt sich seine Position während der Durchlaufens und ermöglicht den sequentiellen Zugriff auf Elemente, bis das Ende erreicht ist.

Einschränkung von iterierbaren Objekten

Beim Arbeiten mit großen Datensätzen kann das Speichern aller Elemente in einem iterierbaren Objekt wie einer Liste ineffizient sein. Wenn beispielsweise eine Zahlenfolge dynamisch generiert wird oder zu groß ist, um in den Speicher zu passen, wird eine Möglichkeit benötigt, Elemente bei Bedarf zu verarbeiten. Hier werden Iteratoren (im nächsten Kapitel behandelt) und Lazy Evaluation (später vorgestellt) entscheidend.

Aufgabe

Swipe to start coding

Schreiben Sie ein Python-Skript, um das Würfeln mit einem gemischten sechsseitigen Würfel mithilfe von Iteratoren zu simulieren. Vervollständigen Sie die fehlenden Teile des Codes, um einen Iterator zu erstellen, Elemente mit next() abzurufen und das Ende der Iteration elegant zu behandeln.

  1. Eine Liste [1, 2, 3, 4, 5, 6] stellt die Seiten eines Würfels dar. Die Liste wurde bereits mit random.shuffle() gemischt.
  2. Wandeln Sie die gemischte Liste in einen Iterator um, damit Sie ihre Elemente einzeln durchlaufen können.
  3. Verwenden Sie die Funktion next(), um das Würfeln zu simulieren und jede Seite auszugeben, bis alle Seiten verwendet wurden.
  4. Wenn der Iterator erschöpft ist, behandeln Sie die Ausnahme StopIteration, um anzuzeigen, dass alle Würfe abgeschlossen sind.

Lösung

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 6. Kapitel 1
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

close

bookPython-Iterierbare Objekte: Verständnis von Sequenzen und Datenstrukturen

Swipe um das Menü anzuzeigen

Was sind Iterables?

In Python sind Iterables Objekte, die durchlaufen oder überiteriert werden können, wobei ihre Elemente nacheinander zurückgegeben werden. Diese Fähigkeit, jeweils ein Element zu liefern, macht sie unverzichtbar für Aufgaben wie Schleifen, Comprehensions und Entpacken.

Zu den häufigsten Iterables gehören:

  • Datenstrukturen: Listen, Tupel, Dictionaries, Sets;
  • Strings: geben ihre Zeichen einzeln zurück;
  • Eigene Objekte: werden durch Implementierung der Methode __iter__ iterierbar gemacht.

Ein zentrales Merkmal von Iterables ist, dass sie sich beim Durchlaufen ihre Position nicht von selbst "merken". Um ihre Elemente tatsächlich zu durchlaufen, benötigen sie einen Iterator.

1234567
numbers = [1, 2, 3, 4] for num in numbers: print(num) title = "codefinity" for char in title: print(char)
copy

Die for-Schleife durchläuft automatisch die Elemente des Iterables und verarbeitet sie einzeln.

Wenn Python ein Iterable verarbeitet, wandelt es das Objekt mit der Funktion iter() in einen Iterator um. Intern ruft iter() die Methode __iter__() des Objekts auf. Ebenso ruft die Funktion next() den nächsten Wert aus dem Iterator ab, indem sie dessen Methode __next__() aufruft.

Das folgende Beispiel zeigt, wie dies funktioniert:

12345678910
numbers = [1, 2, 3, 4] # Converting the list to an iterator numbers_iterator = iter(numbers) # Accessing elements one at a time using `next()` print(next(numbers_iterator)) # Output: 1 print(next(numbers_iterator)) # Output: 2 print(next(numbers_iterator)) # Output: 3 print(next(numbers_iterator)) # Output: 4 print(next(numbers_iterator)) # Output: StopIteration
copy

Iterierbare Objekte vs. Iteratoren

Während alle Iteratoren iterierbar sind, sind nicht alle iterierbaren Objekte Iteratoren. Ein Iterator merkt sich seine Position während der Durchlaufens und ermöglicht den sequentiellen Zugriff auf Elemente, bis das Ende erreicht ist.

Einschränkung von iterierbaren Objekten

Beim Arbeiten mit großen Datensätzen kann das Speichern aller Elemente in einem iterierbaren Objekt wie einer Liste ineffizient sein. Wenn beispielsweise eine Zahlenfolge dynamisch generiert wird oder zu groß ist, um in den Speicher zu passen, wird eine Möglichkeit benötigt, Elemente bei Bedarf zu verarbeiten. Hier werden Iteratoren (im nächsten Kapitel behandelt) und Lazy Evaluation (später vorgestellt) entscheidend.

Aufgabe

Swipe to start coding

Schreiben Sie ein Python-Skript, um das Würfeln mit einem gemischten sechsseitigen Würfel mithilfe von Iteratoren zu simulieren. Vervollständigen Sie die fehlenden Teile des Codes, um einen Iterator zu erstellen, Elemente mit next() abzurufen und das Ende der Iteration elegant zu behandeln.

  1. Eine Liste [1, 2, 3, 4, 5, 6] stellt die Seiten eines Würfels dar. Die Liste wurde bereits mit random.shuffle() gemischt.
  2. Wandeln Sie die gemischte Liste in einen Iterator um, damit Sie ihre Elemente einzeln durchlaufen können.
  3. Verwenden Sie die Funktion next(), um das Würfeln zu simulieren und jede Seite auszugeben, bis alle Seiten verwendet wurden.
  4. Wenn der Iterator erschöpft ist, behandeln Sie die Ausnahme StopIteration, um anzuzeigen, dass alle Würfe abgeschlossen sind.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 6. Kapitel 1
single

single

some-alt