Heim >Backend-Entwicklung >Python-Tutorial >Wie kann man in Python effizient über eine Liste in Chunks iterieren?

Wie kann man in Python effizient über eine Liste in Chunks iterieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-23 09:06:24966Durchsuche

How to Efficiently Iterate Over a List in Chunks in Python?

So iterieren Sie in Blöcken über eine Liste

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!

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