我目前正在做“拼写检查”问题。
我已经创建了一个包含字典的列表。
现在我正在尝试查看列表中是否有word
。
我是使用Python的新手,所以我可能会遗漏一些小东西。
最近的错误是"TypeError: 'list' object cannot be interpreted as an integer"
以下是代码的摘录。
class SpellChecker():
def __init__(self, file_name):
self.__infile = open(file_name,'r')
self.word_list = []
self.temp = self.__infile.readline().strip("\n")
while self.temp != "":
self.word_list.append(self.temp)
self.temp = self.__infile.readline().strip("\n")
self.__infile.close()
def spellcheck_word(self, word):
self.word = word.strip(string.punctuation).lower()
self.list = self.word_list
for i in range(self.list):
if self.word == self.list[i]:
return True
else:
return False
def main():
test = SpellChecker("dictionary.txt")
print(test.spellcheck_word("apple"))
答案 0 :(得分:5)
这就是你如何迭代列表:
for wrd in self.list:
这是一种更简单的方式来做我认为你想做的事情。请注意,它不需要显式循环:
def spellcheck_word(self, word):
self.word = word.strip(string.punctuation).lower()
return self.word in self.word_list
range
是一个内置函数,它在python 3中创建一个列表(在python 2中)和一个iterable。如果有疑问,请使用内置的help
:
>>> help(range)