Python 3,模块'itertools'没有属性'ifilter'

Soh*_*ony 17 python python-itertools python-3.x

我是Python的新手,试图在Python 3中构建一个旧的python文件.我遇到了几个构建错误,我解决了.但是在这一点上我遇到了错误.我不知道如何解决这个问题.代码部分如下所示.

return itertools.ifilter(lambda i: i.state == "IS", self.storage)
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 25

itertools.ifilter()在Python 3移除,因为内置的filter()功能现在提供相同的功能.

如果您需要编写可以在Python 2和Python 3中运行的代码,请使用future_builtins模块中的导入(仅在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)
Run Code Online (Sandbox Code Playgroud)