Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich eine Liste effizient in gleich große Segmente unterteilen?

Wie kann ich eine Liste effizient in gleich große Segmente unterteilen?

DDD
Freigeben: 2024-12-25 00:30:16
Original
182 Leute haben es durchsucht

How Can I Efficiently Chunk a List into Equally-Sized Segments?

Aufteilen einer Liste in gleich große Segmente

Wie können Sie eine Liste beliebiger Länge effizient in gleich große Teile aufteilen? ? Dieses häufige Szenario tritt in verschiedenen Programmierkontexten auf.

Lösung 1 (Generator):

Eine Generatorfunktion namens Chunks bietet einen iterativen Ansatz zur Lösung dieser Aufgabe:

def chunks(lst, n):
    """Yield successive n-sized chunks from lst."""
    for i in range(0, len(lst), n):
        yield lst[i:i + n]
Nach dem Login kopieren

Zum Beispiel mit einer Liste von Zahlen im Bereich von 10 bis 74 und einer Blockgröße von 10:

import pprint
pprint.pprint(list(chunks(range(10, 75), 10)))
# Output:
[[10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
 [20, 21, 22, 23, 24, 25, 26, 27, 28, 29],
 [30, 31, 32, 33, 34, 35, 36, 37, 38, 39],
 [40, 41, 42, 43, 44, 45, 46, 47, 48, 49],
 [50, 51, 52, 53, 54, 55, 56, 57, 58, 59],
 [60, 61, 62, 63, 64, 65, 66, 67, 68, 69],
 [70, 71, 72, 73, 74]]
Nach dem Login kopieren

Lösung 2 (Listenverständnis):

Ein prägnanter Ansatz zum Listenverständnis ist:

[lst[i:i + n] for i in range(0, len(lst), n)]
Nach dem Login kopieren

Hinweis :

Obwohl die Generatormethode ausführlicher ist, wird sie normalerweise bevorzugt in der Lesbarkeit und Wartbarkeit des Codes. Das Listenverständnis bietet jedoch eine praktische einzeilige Alternative.

Das obige ist der detaillierte Inhalt vonWie kann ich eine Liste effizient in gleich große Segmente unterteilen?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage