【发布时间】:2016-02-16 09:11:01
【问题描述】:
我是 Python 新手,正在尝试将旧的 Python 文件构建到 Python 3 中。我遇到了几个构建错误,但我已经解决了。但在这一点上,我正在克服错误。我不知道如何解决这个问题。代码部分如下所示。
return itertools.ifilter(lambda i: i.state == "IS", self.storage)
【问题讨论】:
标签: python python-3.x itertools
我是 Python 新手,正在尝试将旧的 Python 文件构建到 Python 3 中。我遇到了几个构建错误,但我已经解决了。但在这一点上,我正在克服错误。我不知道如何解决这个问题。代码部分如下所示。
return itertools.ifilter(lambda i: i.state == "IS", self.storage)
【问题讨论】:
标签: python python-3.x itertools
itertools.ifilter() 在 Python 3 中被删除,因为内置的 filter() function 现在提供了相同的功能。
如果您需要编写可以在 Python 2 和 Python 3 中运行的代码,请使用来自 future_builtins module 的导入(仅在 Python 2 中,因此使用 try...except ImportError: 保护):
try:
# Python 2
from future_builtins import filter
except ImportError:
# Python 3
pass
return filter(lambda i: i.state == "IS", self.storage)
【讨论】: