如何为ArrayList类成功实现自己的__contains__方法?

时间:2016-06-09 17:10:50

标签: python class arraylist contains

我是一个相对较新的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

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

1 个答案:

答案 0 :(得分:1)

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

另请注意,如果您只是写iter,则会隐含for num in self。而普通的Python列表([])本质上就是Java ArrayList