无法从类中迭代列表

时间:2014-05-09 07:04:54

标签: python

我目前正在做“拼写检查”问题。

我已经创建了一个包含字典的列表。

现在我正在尝试查看列表中是否有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"))

1 个答案:

答案 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)

Python 2 range

Python 3 range