Heim >Backend-Entwicklung >Python-Tutorial >Wie teilt man eine Liste in Python effizient in ausgewogene Blöcke auf?

Wie teilt man eine Liste in Python effizient in ausgewogene Blöcke auf?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-28 19:33:10409Durchsuche

How to Efficiently Divide a List into Balanced Chunks in Python?

So teilen Sie eine Liste in ausgewogene Teile auf

Das Aufteilen einer Liste in gleich große Teile ist in verschiedenen Programmierszenarien unerlässlich. Python bietet mehrere Methoden zur Bewältigung dieser Aufgabe und bietet Flexibilität und Effizienz. Ein beliebter Ansatz nutzt eine Generatorfunktion.

Der in der Antwort vorgestellte chunks()-Generator ermöglicht es Ihnen, eine Liste in Blöcke einer bestimmten Größe zu unterteilen. Es durchläuft die Liste in Schritten der definierten Blockgröße und ergibt aufeinanderfolgende Blöcke. Der folgende Code zeigt, wie der chunks()-Generator verwendet wird:

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

Um seine Funktionalität zu veranschaulichen, sollten Sie erwägen, eine Liste von Ganzzahlen in Blöcke der Größe 10 aufzuteilen:

import pprint
pprint.pprint(list(chunks(range(10, 75), 10)))

Dieser Code erzeugt die folgende Ausgabe und zeigt die Liste in gleichmäßig große Teile unterteilt:

[[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]]

Während der Generatoransatz dafür empfohlen wird Dank der Klarheit und Effizienz bietet Python auch eine prägnante Lösung zum Listenverständnis für das Listen-Chunking:

[lst[i:i + n] for i in range(0, len(lst), n)]

Denken Sie daran, dass die Verwendung benannter Funktionen wie chunks() die Lesbarkeit und Wartbarkeit des Codes verbessert.

Das obige ist der detaillierte Inhalt vonWie teilt man eine Liste in Python effizient in ausgewogene Blöcke auf?. 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