Generatoren und Iteratoren in Python erklärt
Generatoren und Iteratoren in Python erklärt
Ein fundierter Leitfaden zur effizienten Datenverarbeitung mit Generatoren, Iteratoren und Lazy Evaluation
Inhaltsverzeichnis
Kapitel 1: Was sind Iteratoren und Generatoren?
- Motivation: große Datenmengen effizient verarbeiten
- Was ist ein Iterator?
- Was ist ein Generator?
- Unterschiede zu Listen und anderen Collections
Kapitel 2: Iteratoren verstehen und selbst erstellen
- Die Iterator-Protokolle: __iter__() und __next__()
- Iterieren mit for und while
- Eigene Iterator-Klasse erstellen
- Mini-Projekt: Einfache Zahlenfolge als Iterator
Kapitel 3: Generatoren mit yield
- Generator-Funktion mit yield
- Zustand speichern beim Pausieren
- Vergleich: return vs. yield
- Mini-Projekt: Countdown-Generator
Kapitel 4: Generatorausdrücke – die kompakte Variante
- Syntax: (ausdruck for element in iterable)
- Vergleich zu Listen-Comprehension
- Kombination mit Funktionen wie sum(), max()
- Mini-Projekt: Summe großer Zahlenmenge
Kapitel 5: Praktische Anwendungsfälle für Generatoren
- Datenströme verarbeiten
- Große Dateien zeilenweise lesen
- Endlos-Generatoren (while True)
- Mini-Projekt: Zeilen aus Logdatei analysieren
Kapitel 6: Generatoren kombinieren und verschachteln
- Generatoren an andere übergeben
- yield from verstehen und verwenden
- Mini-Projekt: Zahlengenerator mit Filter
Kapitel 7: Fehlerbehandlung in Generatoren
- Umgang mit StopIteration
- Verwendung von next() mit Default-Wert
- try-except in Generatorfunktionen
- Mini-Projekt: Sicherer Dateileser
Kapitel 8: Iteratoren und Generatoren im Alltag
- Itertools: vorgefertigte Generatoren
- Typische Kombinatorik: product, permutations, cycle, chain
- Lazy Evaluation und Speicherersparnis
- Mini-Projekt: Kombinierte Wörterliste mit itertools
Kapitel 9: Generatoren vs. Listen – Performance verstehen
- Speicherverbrauch messen
- Geschwindigkeit testen
- Wann sich Generatoren lohnen
- Best Practices
Kapitel 10: Generatoren in komplexeren Projekten
- Einsatz in APIs, Datenpipelines, Parsers
- Generatoren in Schleifen und Pipelines
- Generatoren als koroutinenartige Strukturen
- Mini-Projekt: Schrittweise Datenberechnung mit Generatorpipeline
Anhang A: Übersicht wichtiger Generator- und Iteratorfunktionen
- iter(), next(), yield, yield from, StopIteration
- Übersicht als Schnellreferenz mit Beispielen
Anhang B: Vergleich Generator, Liste, Iterator
- Tabelle mit Syntax, Verhalten und Performance
- Entscheidungshilfe: Wann was verwenden
Anhang C: Übungsaufgaben mit Lösungen
- Eigene Generatorfunktionen schreiben
- Generatorausdrücke anwenden
- Iterator-Klassen bauen
- Lösungen mit Kommentaren und Erklärungen