Listen gruppieren
Verfasst: Montag 17. Dezember 2007, 19:38
Servus,
Da ich so etwas schon am zweiten Tag in Folge brauche: ich wollte listen in gleich lange Teile zerlegen:
Die erste Lösung ist etwas kürzer (und sieht lustiger aus), ignoriert aber überzählige Teile. Man könnte den ersten Ansatz aber etwas erweitern, wenn man das die von range generierte Liste verlängert und dann auf die `StopIteration`-Exception reagiert.
Da ich so etwas schon am zweiten Tag in Folge brauche: ich wollte listen in gleich lange Teile zerlegen:
Code: Alles auswählen
def chunkize_lc(l, size):
iterator = iter(l)
lazy_values = [[iterator.next] * size for i in range(len(l) / size)]
return [[inner() for inner in outer] for outer in lazy_values]
def chunkize_for(l, size):
result = list()
current_chunk = list()
for index, item in enumerate(l):
current_chunk.append(item)
if index % size == size - 1:
result.append(current_chunk)
current_chunk = list()
if current_chunk:
result.append(current_chunk)
return result
l = range(6)
print chunkize_lc(l, 2)
print chunkize_for(l, 2)
print chunkize_lc(l, 4)
print chunkize_for(l, 4)