我是一个相对较新的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。
答案 0 :(得分:1)
此测试num
是否等于self
中的第一个值。在整个循环结束后,您应该只return False
,并且您已经显示num
与列表中的任何内容不相同,因为您还没有返回True
。
另请注意,如果您只是写iter
,则会隐含for num in self
。而普通的Python列表([]
)本质上就是Java ArrayList
。