作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我找到了以下与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]]
以下代码改编自所选答案。只需将名称从 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)
最佳答案
在 Python 3 的 itertools
中有一个名为 zip_longest
的函数。它应该和 Python 2 中的 izip_longest
一样。
为什么要改名?您可能还注意到 itertools.izip
现在在 Python 3 中消失了 - 这是因为在 Python 3 中,zip
内置函数现在返回一个迭代器,而在 Python 2 中它返回一个列表。由于不需要 izip
函数,因此重命名 _longest
变体以保持一致性也是有意义的。
关于python - 如何在 Python 3 中对列表进行分块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5850536/
我是一名优秀的程序员,十分优秀!