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!