Die Notwendigkeit, in Blöcken über eine Liste zu iterieren, entsteht in verschiedenen Programmierszenarien, beispielsweise bei der Verarbeitung großer Datensätze. Dieser Artikel befasst sich mit den effizientesten und pythonischsten Möglichkeiten, diese Aufgabe zu lösen.
Traditionell wurde ein C-Stil-Ansatz mit einer Bereichsschleife mit expliziter Indexmanipulation verwendet:
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]
Während dieser Die Methode mag unkompliziert sein, ihr mangelt es jedoch an pythonischer Eleganz.
Eine eher pythonische Alternative wurde vorgeschlagen:
while ints: foo += ints[0] * ints[1] + ints[2] * ints[3] ints[0:4] = []
Dieser Ansatz nutzt Pythons List-Slicing, um die verarbeiteten Elemente zu entfernen und so eine sauberere Lösung darzustellen.
Einführung von chunker() in Python 3.12
Mit der Veröffentlichung von Python 3.12 wird die Die mit Spannung erwartete Funktion chunker() wurde eingeführt:
from itertools import islice def chunker(seq, size): it = iter(seq) while True: chunk = list(islice(it, size)) if not chunk: break yield chunk
Diese Funktion iteriert elegant über jeden Typ der Sequenz und teilt sie in Stücke der gewünschten Größe auf. Die folgenden Beispiele veranschaulichen seine Vielseitigkeit:
text = "I am a very, very helpful text" for group in chunker(text, 7): print(repr(group),) # 'I am a ' 'very, v' 'ery hel' 'pful te' 'xt' print('|'.join(chunker(text, 10))) # I am a ver|y, very he|lpful text animals = ['cat', 'dog', 'rabbit', 'duck', 'bird', 'cow', 'gnu', 'fish'] for group in chunker(animals, 3): print(group) # ['cat', 'dog', 'rabbit'] # ['duck', 'bird', 'cow'] # ['gnu', 'fish']
Die Funktion chunker() erweitert Pythons bereits reichhaltiges Ökosystem der Listenmanipulation und verdeutlicht noch mehr seine Benutzerfreundlichkeit.
Das obige ist der detaillierte Inhalt vonWie kann man in Python effizient über eine Liste in Chunks iterieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!