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
Freigeben: 2024-12-19 19:36:10
Original
245 Leute haben es durchsucht

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

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

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

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

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!

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