Wie kann ich eine Liste mit einer effizienten Technik in ausgewogene Teile aufteilen?

DDD
Freigeben: 2024-11-15 12:23:02
Original
443 Leute haben es durchsucht

How Can I Split a List into Balanced Parts with an Efficient Technique?

Ausgleich der Listenverteilung mit einer effizienten Aufteilungstechnik

Im Bereich der Datenmanipulation die Fähigkeit, eine Liste gleichmäßig in mehrere Teile zu verteilen Die gewünschte Länge ist von großer Bedeutung. Diese Herausforderung tritt in verschiedenen Szenarien auf, beispielsweise beim Partitionieren von Daten für die gleichzeitige Verarbeitung oder beim Organisieren von Elementen in verwaltbaren Teilmengen.

Ein häufig verwendeter Ansatz ist die Funktion chunks(), die eine Liste in Blöcke einer bestimmten Größe unterteilt. Dieser Methode fehlt jedoch die Präzision, um in allen Fällen annähernd gleiche Teile zu erzeugen. Wenn Sie beispielsweise eine Liste mit 7 Elementen in 2 Teile aufteilen, würde dies zu ungleichmäßigen Teilen mit 3 und 4 Elementen führen.

Um diese Einschränkung zu beheben, wird eine verfeinerte Lösung vorgestellt:

def split(a, n):
    k, m = divmod(len(a), n)
    return (a[i*k+min(i, m):(i+1)*k+min(i+1, m)] for i in range(n))
Nach dem Login kopieren

Dieser Ansatz verwendet die Funktion divmod(), um die Anzahl der vollständigen Blöcke der Größe k und die Anzahl der Elemente im verbleibenden Teilblock m zu berechnen. Anschließend durchläuft die Schleife jeden Block, beginnend mit Index i, und unterteilt die Liste, um die gewünschte Teilmenge abzurufen.

Betrachten Sie zur Veranschaulichung das folgende Beispiel:

>>> list(split(range(11), 3))
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10]]
Nach dem Login kopieren

Hier Szenario wird die Liste [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] elegant in drei nahezu gleiche Teile aufgeteilt, wobei jeder Teil entweder 4 oder 3 Elemente enthält.

Durch die Integration dieser Technik in Ihr Programmierarsenal erhalten Sie ein leistungsstarkes Tool für die effiziente und ausgewogene Verwaltung von Listen.

Das obige ist der detaillierte Inhalt vonWie kann ich eine Liste mit einer effizienten Technik in ausgewogene Teile aufteilen?. 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