Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich eine Python-Liste in Blöcken effizient durchlaufen?

Wie kann ich eine Python-Liste in Blöcken effizient durchlaufen?

Susan Sarandon
Susan SarandonOriginal
2024-12-19 19:36:10338Durchsuche

How Can I Efficiently Iterate Over a Python List in Chunks?

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!

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