2016-06-09 73 views
0

我是一個相對較新的Python程序員,並試圖修復我的包含方法在我的ArrayList類中。我想檢查輸入值是否實際包含在存儲列表中。如何成功實現我自己的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

這測試num是否等於self中的第一個值。整個循環結束後,您應該只應用return False,並且您已經顯示num與列表中的任何內容不相等,因爲您尚未返回True

另請注意,如果您只寫for num in self,則暗示iter。而一個正常的Python列表([])本質上是一個Java ArrayList已經。

+0

謝謝!這幫助我注意到了縮進。 – Devon

相關問題