Heim >Backend-Entwicklung >Python-Tutorial >Wie kann man eine Liste in Python effizient aufteilen?

Wie kann man eine Liste in Python effizient aufteilen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-22 05:16:10603Durchsuche

How to Efficiently Chunk a List in Python?

So teilen Sie eine Liste in Python auf

In Python stoßen wir häufig auf Situationen, in denen wir eine Liste in kleinere, gleich große Teile aufteilen müssen. Dies kann mit verschiedenen Ansätzen erreicht werden, darunter die Generatorfunktion chunks().

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 die Funktion chunks() zu verwenden, übergeben Sie einfach die Liste, die Sie aufteilen möchten, als erstes Argument und die gewünschte Chunk-Größe als zweites Argument. Die Funktion gibt dann einen Generator zurück, der aufeinanderfolgende Blöcke der angegebenen Größe liefert.

Der folgende Code teilt beispielsweise eine Liste von Zahlen in 10er-Blöcke auf:

>>> list(chunks(range(10, 75), 10))
[[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]]

Ein anderer Ansatz , wenn auch nicht so vorzuziehen, ist die Verwendung eines Listenverständnisses:

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

Ganz gleich, ob Sie die Funktion chunks() oder eine Liste verwenden Um das Verständnis zu verbessern, unterteilen beide Methoden eine Liste effektiv in gleich große Teile.

Das obige ist der detaillierte Inhalt vonWie kann man eine Liste in Python effizient aufteilen?. 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