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
Freigeben: 2024-12-03 13:38:11
Original
1148 Leute haben es durchsucht

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]]
Nach dem Login kopieren

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]]
Nach dem Login kopieren

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]]
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage