【问题标题】:Python 3, module 'itertools' has no attribute 'ifilter'Python 3,模块“itertools”没有属性“ifilter”
【发布时间】: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


    【解决方案1】:

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-05
      • 1970-01-01
      • 1970-01-01
      • 2018-04-23
      • 2023-04-06
      • 2015-12-17
      • 1970-01-01
      相关资源
      最近更新 更多