我目前正在做一个"拼写检查"问题.
我已经创建了一个包含字典的列表.
现在我想看看是否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"))
Run Code Online (Sandbox Code Playgroud)
这是您遍历列表的方式:
for wrd in self.list:
Run Code Online (Sandbox Code Playgroud)
这是一种更简单的方法来做我认为你想做的事情.请注意,它不需要显式循环:
def spellcheck_word(self, word):
self.word = word.strip(string.punctuation).lower()
return self.word in self.word_list
Run Code Online (Sandbox Code Playgroud)
range是一个内置函数,它在python 3中创建一个列表(在python 2中)和一个iterable.如果有疑问,请使用内置函数help:
>>> help(range)
Run Code Online (Sandbox Code Playgroud)