ifilter怎么了?

pyl*_*ang 6 built-in python-2.7 python-3.x

在为Python之间itertools比较文档23,我注意到ifilter,imap,izip从Python 3的失踪我怀疑这是因为许多内建的关键字都被转换为发电机和更换前的关键字,但在这种情况下,目前还不清楚.

这是真的ifilter,imap,izip现在相当于filter,map,zip在Python 3?如果没有,我在哪里可以找到为什么某些方法被从当前删除的理由itertools

Tha*_*rif 12

Python 2.3中引入的itertools模块,它定义的全局变量zip(),map()以及filter()一个返回迭代器,而非列表功能.在Python 3中,那些全局函数返回迭代器,因此已经消除了itertools模块中的那些函数.

在此输入图像描述

  • 而不是itertools.izip(),只使用全局zip()函数.
  • 而不是itertools.imap(),只是使用map().
  • itertools.ifilter()成为filter().
  • itertools模块仍然存在于Python 3中,它只是没有迁移到全局命名空间的函数.2to3脚本非常智能,可以删除不再存在的特定导入,同时保留其他导入不变.

在这里阅读更多

  • 很好的参考.谢谢! (2认同)