Der Code:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
def slice_it(my_list, columns=2):
"""slice_it(my_list, columns=2): Gibt eine Liste, die `columns` Listen
enthält zurück. Jede dieser Listen repräsentiert eine Spalte, wie sie
in Zeitungen/Wörterbüchern zu finden sind.
>>> slice_it(range(10))
[[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]
>>> slice_it(range(10),3)
[[0, 1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> slice_it(range(10),4)
[[0, 1, 2], [3, 4, 5], [6, 7], [8, 9]]
"""
length = len(my_list)
mod = length % columns
step = length/columns
pos = 0
new_list = []
i = 0
while i < columns:
if mod != 0:
new_pos = pos+step+1
new_list.append(my_list[pos:new_pos])
pos = new_pos
mod -= 1
else:
new_pos = pos+step
new_list.append(my_list[pos:new_pos])
pos = new_pos
i += 1
return new_list
if __name__ == "__main__":
import doctest
doctest.testmod()
print "Tests done."