Я нашел следующий код, совместимый с python2
from itertools import izip_longest
def grouper(n, iterable, padvalue=None):
"grouper(3, 'abcdefg', 'x') --> ('a','b','c'), ('d','e','f'), ('g','x','x')"
return izip_longest(*[iter(iterable)]*n, fillvalue=padvalue)
Однако это не работает с Python 3. Я получаю следующую ошибку:
ImportError: cannot import name izip_longest
Может кто-нибудь помочь?
Я хотел бы преобразовать список [1,2,3,4,5,6,7,8,9]
в [[1,2,3],[4,5,6],[7,8,9]]
Изменить
Теперь совместим с Python3
Приведенный ниже код адаптирован из выбранного ответа. Просто измените имя от izip_longest
до zip_longest
.
from itertools import zip_longest
def grouper(n, iterable, padvalue=None):
"grouper(3, 'abcdefg', 'x') --> ('a','b','c'), ('d','e','f'), ('g','x','x')"
return zip_longest(*[iter(iterable)]*n, fillvalue=padvalue)