Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich mit Python in Blöcken durch einen Iterator iterieren?

Wie kann ich mit Python in Blöcken durch einen Iterator iterieren?

Susan Sarandon
Susan SarandonOriginal
2024-12-03 13:38:111021Durchsuche

How Can I Iterate Through an Iterator in Chunks Using Python?

Iterieren eines Iterators durch Chunks mit Python

Das Iterieren über einen Iterator durch Chunks einer bestimmten Größe ist eine häufige Aufgabe in Python. Um dies zu erreichen, sollten Sie die folgenden Ansätze in Betracht ziehen:

Verwendung der Funktion itertools.grouper():

Die Funktion itertools.grouper() bietet eine vielseitige Methode zum Gruppieren eine iterierbare in Stücke. Allerdings ist eine zusätzliche Bearbeitung erforderlich, um unvollständige Endblöcke zu berücksichtigen, was mit dem Parameter „incomplete“ erreicht werden kann.

from itertools import grouper

it = iter([1, 2, 3, 4, 5, 6, 7])
chunk_size = 3
chunks = list(grouper(it, chunk_size, incomplete='ignore'))
print(chunks)  # [[1, 2, 3], [4, 5, 6], [7]]

Verwendung der Funktion itertools.batched() (Python 3.12):

Führt in Python 3.12 die Funktion itertools.batched() ein, die das Chunking explizit behandelt und die beibehält Originalsequenztyp.

from itertools import batched

it = [1, 2, 3, 4, 5, 6, 7]
chunk_size = 3
chunks = list(batched(it, chunk_size))
print(chunks)  # [[1, 2, 3], [4, 5, 6], [7]]

Alternative Lösung für Sequenziteratoren:

Für Sequenzen besteht eine weniger allgemeine, aber praktische Lösung darin, Listenaufteilung mit gleicher Schrittgröße zu verwenden auf die Blockgröße.

it = [1, 2, 3, 4, 5, 6, 7]
chunk_size = 3
chunks = [it[i:i + chunk_size] for i in range(0, len(it), chunk_size)]
print(chunks)  # [[1, 2, 3], [4, 5, 6], [7]]

Diese Methoden bieten effiziente Möglichkeiten, über einen Iterator in Blöcken zu iterieren und ermöglichen so für den flexiblen Umgang mit unvollständigen Endstücken und die Beibehaltung des ursprünglichen Sequenztyps bei Bedarf.

Das obige ist der detaillierte Inhalt vonWie kann ich mit Python in Blöcken durch einen Iterator iterieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn