Iterieren über Listen in Blöcken: Pythonische Lösungen
In diesem Artikel untersuchen wir Möglichkeiten, über Python-Listen in Blöcken zu iterieren, wobei jeder Block besteht aus einer bestimmten Anzahl von Elementen. In der gegebenen Situation wird mit vier ganzen Zahlen gleichzeitig gearbeitet.
Konventioneller Ansatz
Das bereitgestellte Codesegment zeigt einen C-Stil-Ansatz für die Aufteilung der Liste:
for i in range(0, len(ints), 4): # dummy op for example code foo += ints[i] * ints[i + 1] + ints[i + 2] * ints[i + 3]
Obwohl diese Methode funktionsfähig ist, stimmt sie möglicherweise nicht mit der Python-Idiomatik überein Prinzipien.
Pythonic Solutions
1. Verwendung der Chunker-Funktion
Seit Python 3.12 hat Python die Chunker-Funktion eingeführt, die eine präzise und effiziente Möglichkeit bietet, jede Sequenz zu chunken:
def chunker(seq, size): return (seq[pos:pos + size] for pos in range(0, len(seq), size))
Diese Funktion erstellt einen Generator das ergibt Blöcke der angegebenen Größe aus der angegebenen Sequenz. Der folgende Code veranschaulicht die Verwendung:
for group in chunker(text, 7): print(repr(group),)
2. Verwendung von itertools.islice
Für Python-Versionen vor 3.12 kann itertools.islice zum Chunking verwendet werden:
from itertools import islice def grouper(seq, size): it = iter(seq) while True: chunk = list(islice(it, size)) if not chunk: return yield chunk
Diese Funktion erstellt auf ähnliche Weise einen Generator, der Listen von Elementen erstellt aus dem Sequenz.
Fazit
Die Chunker-Funktion bietet eine native und effiziente Lösung für das Chunking von Listen in Python 3.12 und höher. Für frühere Versionen bietet die Grouper-Funktion eine passende Alternative. Diese Methoden ermöglichen einen prägnanteren und idiomatischeren Code bei der Arbeit mit großen Listen.
Das obige ist der detaillierte Inhalt vonWie kann ich eine Python-Liste in Blöcken effizient durchlaufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!