не тот же вывод, я все еще думаю, что функция grouper полезна:
from itertools import izip_longest
def grouper(iterable, n, fillvalue=None):
args = [iter(iterable)] * n
return izip_longest(*args, fillvalue=fillvalue)
для Python2.4 и 2.5, у которых нет izip_longest:
from itertools import izip, chain, repeat
def grouper(iterable, n, padvalue=None):
return izip(*[chain(iterable, repeat(padvalue, n-1))]*n)
некоторый демонстрационный код и вывод:
alist = range(10)
print list(grouper(alist, 3))
Выход:
[(0, 1, 2), (3, 4, 5), (6, 7, 8), (9, нет, нет)]