【问题标题】:How to successfully implement my own __contains__ method for an ArrayList class?如何为 ArrayList 类成功实现我自己的 __contains__ 方法?
【发布时间】:2016-10-10 11:31:32
【问题描述】:

我是一个相对较新的 Python 程序员,正在尝试在我的 ArrayList 类中修复我的 contains 方法。我想检查输入值是否实际包含在存储列表中。

def __contains__(self, value):
        """Implements `val in self`. Returns true if value is found in this list."""
        for num in iter(self):
            if(num==value):
                return True
            else: 
                return False

有人能告诉我这段代码有什么问题吗?我使用生成的列表 range(100) 对其进行测试,值为 50,但它不会返回 True。

【问题讨论】:

    标签: python class arraylist contains


    【解决方案1】:

    这会测试num 是否等于self 中的第一个值。您应该只在整个循环结束后return False,并且您已经证明num 不等于列表中的任何内容,因为您还没有返回True

    另请注意,如果您只写for num in self,则暗示iter。而一个普通的 Python 列表 ([]) 本质上已经是一个 Java ArrayList

    【讨论】:

    • 谢谢!这帮助我注意到了缩进。
    猜你喜欢
    • 2017-06-16
    • 2010-12-15
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    • 2012-11-24
    • 2011-06-07
    • 1970-01-01
    相关资源
    最近更新 更多