在比较Python 2和3之间的itertools文档时,我注意到Python 3中缺少ifilter
,imap
,izip
。我怀疑这一点是因为许多内置关键字已经转换为生成器并替换了以前的关键字,但在这种情况下还不清楚。
是真的ifilter
,imap
,izip
现在等同于Python 3中的filter
,map
,zip
吗?如果没有,我在哪里可以找到从当前itertools
中删除某些方法的理由?
答案 0 :(得分:11)
Python 2.3引入了itertools
模块,该模块定义了返回迭代器而不是列表的全局zip()
,map()
和filter()
函数的变体。在Python 3中,那些全局函数返回迭代器,因此已经消除了itertools模块中的那些函数。
itertools.izip()
,只需使用全局zip()
函数。itertools.imap()
,只需使用map()
。itertools.ifilter()
变为filter()
。了解更多here