Aufteilen einer Liste in gleich große Segmente
Wie können Sie eine Liste beliebiger Länge effizient in gleich große Teile aufteilen? ? Dieses häufige Szenario tritt in verschiedenen Programmierkontexten auf.
Lösung 1 (Generator):
Eine Generatorfunktion namens Chunks bietet einen iterativen Ansatz zur Lösung dieser Aufgabe:
def chunks(lst, n): """Yield successive n-sized chunks from lst.""" for i in range(0, len(lst), n): yield lst[i:i + n]
Zum Beispiel mit einer Liste von Zahlen im Bereich von 10 bis 74 und einer Blockgröße von 10:
import pprint pprint.pprint(list(chunks(range(10, 75), 10))) # Output: [[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]]
Lösung 2 (Listenverständnis):
Ein prägnanter Ansatz zum Listenverständnis ist:
[lst[i:i + n] for i in range(0, len(lst), n)]
Hinweis :
Obwohl die Generatormethode ausführlicher ist, wird sie normalerweise bevorzugt in der Lesbarkeit und Wartbarkeit des Codes. Das Listenverständnis bietet jedoch eine praktische einzeilige Alternative.
Das obige ist der detaillierte Inhalt vonWie kann ich eine Liste effizient in gleich große Segmente unterteilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!