Was ist der beste Weg, um eine Liste in ungefähr gleiche Teile zu teilen ? Wenn die Liste beispielsweise 7 Elemente enthält und in 2 Teile aufgeteilt ist, möchten wir 3 Elemente in einem Teil erhalten, und der andere sollte 4 Elemente enthalten.
Ich suche so etwas even_split(L, n)
, das L
in n
Teile zerbricht .
def chunks(L, n):
""" Yield successive n-sized chunks from L.
"""
for i in range(0, len(L), n):
yield L[i:i+n]
Der obige Code gibt Blöcke von 3 statt 3 Blöcken an. Ich könnte einfach transponieren (darüber iterieren und das erste Element jeder Spalte nehmen, diesen Teil eins nennen, dann das zweite nehmen und es in Teil zwei setzen usw.), aber das zerstört die Reihenfolge der Elemente.
>>> chunkIt(range(8), 6)
=>[[0], [1], [2, 3], [4], [5], [6], [7]]