Heim >Backend-Entwicklung >Python-Tutorial >Wie teilt man eine Liste in Python in nahezu gleiche Teile auf?

Wie teilt man eine Liste in Python in nahezu gleiche Teile auf?

Barbara Streisand
Barbara StreisandOriginal
2024-11-16 10:23:021019Durchsuche

How to Divide a List into Nearly Equal Parts in Python?

Aufteilen einer Liste in nahezu gleiche Teile

Das Aufteilen einer Liste in gleiche Teile ist eine häufige Aufgabe in der Programmierung. Die integrierte chunks()-Methode in Python bietet eine Möglichkeit, eine Liste in gleich große Blöcke aufzuteilen, aber was ist, wenn Sie die Liste stattdessen in ungefähr gleiche Teile aufteilen möchten?

Ein Ansatz, dies zu erreichen, ist Verwenden Sie einen Listengenerator:

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))

So funktioniert es:

  • k ist die Anzahl der Elemente in jedem Teil und m ist die Rest aus der Division der Listenlänge durch n.
  • Die for-Schleife iteriert über die gewünschte Anzahl von Teilen n.
  • Für jeden Teil berechnet sie die Start- und Endindizes basierend auf k, m, und die aktuelle Iteration i.
  • Das Slice a[start:end] extrahiert die Elemente für die aktuelle Teil.

Beispiel:

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

Dieser Code teilt eine Liste der Länge 11 in 3 Teile, was zu Teilen mit 4, 4 bzw. 3 Elementen führt.

Das obige ist der detaillierte Inhalt vonWie teilt man eine Liste in Python in nahezu gleiche Teile 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