itertools: Unendliche und endliche Iteratoren
Verwenden Sie count, cycle, islice, chain und zip_longest.
itertools: Unendliche und endliche Iteratoren ist eine kostenlose Python Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Python Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.
Was ist itertools?
itertools ist ein Modul der Standardbibliothek, das speichereffiziente Bausteine zum Erstellen von Iteratoren bereitstellt. Alle Funktionen geben Iteratoren statt Listen zurück.
import itertools
# count: infinite counter
for i in itertools.islice(itertools.count(10, 2), 5):
print(i, end=" ") # 10 12 14 16 18count()
count(start, step) erzeugt eine unendliche arithmetische Folge. Verwenden Sie die Funktion immer zusammen mit islice oder einer Abbruchbedingung.
import itertools
for n in itertools.count(1, 10):
if n > 40:
break
print(n, end=" ") # 1 11 21 31 41cycle()
cycle(iterable) wiederholt das Iterable unendlich oft.
import itertools
colors = itertools.cycle(["red","green","blue"])
for _ in range(7):
print(next(colors), end=" ")
# red green blue red green blue redrepeat()
repeat(value, times) liefert times-mal denselben Wert (unendlich oft, wenn times weggelassen wird).
import itertools
print(list(itertools.repeat(42, 4))) # [42, 42, 42, 42]
print(list(map(pow, range(5), itertools.repeat(2))))
# [0, 1, 4, 9, 16]islice()
islice(it, stop) oder islice(it, start, stop, step) schneidet einen Iterator, ohne ihn zu materialisieren.
import itertools
result = list(itertools.islice(range(100), 2, 10, 2))
print(result) # [2, 4, 6, 8]chain()
chain(*iterables) verkettet mehrere Iterables in ihrer Reihenfolge zu einem einzigen Iterator.
import itertools
result = list(itertools.chain([1,2], [3,4], [5]))
print(result) # [1, 2, 3, 4, 5]
# chain.from_iterable for a list of iterables:
nested = [[1,2],[3,4]]
print(list(itertools.chain.from_iterable(nested)))zip_longest()
zip_longest kombiniert Iterables unterschiedlicher Länge und füllt fehlende Werte mit einem fillvalue auf.
import itertools
a = [1, 2, 3]
b = ["a", "b"]
print(list(itertools.zip_longest(a, b, fillvalue=0)))
# [(1, "a"), (2, "b"), (3, 0)]dropwhile() und takewhile()
takewhile(pred, it) liefert Elemente, solange das Prädikat wahr ist. dropwhile macht das Gegenteil.
import itertools
nums = [1, 3, 5, 6, 7, 9]
print(list(itertools.takewhile(lambda x: x % 2, nums)))
# [1, 3, 5]
print(list(itertools.dropwhile(lambda x: x % 2, nums)))
# [6, 7, 9]filterfalse()
filterfalse(pred, it) liefert Elemente, für die das Prädikat False ergibt – das Gegenstück zu filter().
import itertools
evens = list(itertools.filterfalse(lambda x: x%2, range(10)))
print(evens) # [0, 2, 4, 6, 8]starmap()
starmap(func, iterable) wendet eine Funktion auf jedes Argument-Tupel eines Iterables an.
import itertools, operator
pairs = [(2,3),(4,5),(1,10)]
result = list(itertools.starmap(operator.mul, pairs))
print(result) # [6, 20, 10]groupby()
groupby(it, key) gruppiert aufeinanderfolgende Elemente mit demselben Schlüsselwert. Sortieren Sie das Iterable zuerst, damit die Gruppierung korrekt ist.
import itertools
data = sorted([("a",1),("b",2),("a",3)], key=lambda x:x[0])
for key, group in itertools.groupby(data, key=lambda x:x[0]):
print(key, list(group))Schnelltest
Was ergibt itertools.chain([1,2], [3,4])?
Zusammenfassung
itertools stellt unendliche Iteratoren (count, cycle, repeat), Slicing (islice), Kombinationen (chain, zip_longest) und Filterfunktionen (takewhile, dropwhile, filterfalse) bereit. Alle arbeiten verzögert und speichereffizient.
Häufig gestellte Fragen
Ist die Lektion „itertools: Unendliche und endliche Iteratoren“ kostenlos?
Ja — der vollständige Text von „itertools: Unendliche und endliche Iteratoren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Python Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „itertools: Unendliche und endliche Iteratoren“?
Verwenden Sie count, cycle, islice, chain und zip_longest. Du übst Python Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Python Academy zu starten?
Keine Vorkenntnisse erforderlich. Python Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „itertools: Unendliche und endliche Iteratoren“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Python Academy-Lektion Code schreiben und ausführen?
Ja. Jede Python Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- itertools: Unendliche und endliche Iteratoren
- itertools: Kombinatorik
- functools: partial und reduce
- functools: lru_cache und cached_property