【发布时间】:2011-08-16 13:42:21
【问题描述】:
我找到了以下与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)
【问题讨论】:
-
阅读文档!
itertools模块文档的 Python 3 版本具有grouper的更新配方:docs.python.org/py3k/library/itertools.html#itertools-recipes
标签: python list python-3.x