1
我试图创建一个迭代器,从文本文件中提取每个单词并遍历它们。这就是我现在所拥有的:Python自定义迭代器:通过非序列迭代
class String_iterator:
def __init__(self, filename):
self.words = []
f = open(filename, 'r')
lines = f.readlines()
for line in lines:
self.words.extend(line.split(" "))
self.ind = 0
self.size = len(self.words)
def __iter_(self):
return self
def next(self):
if self.ind > self.size:
raise StopIteration
else:
self.ind += 1
return self.words[self.ind-1]
比较它与Python的迭代器功能简单的例子,我想不通为什么它不工作时,我尝试甚至一个简单的情况下使用它:
sit = String_iterator(filename)
for word in sit:
print word
我得到的错误:
Traceback (most recent call last):
File "WordCounter.py", line 68, in <module>
for word in sit:
TypeError: iteration over non-sequence
我猜测,有什么不对的String_iterator
,它不是一个适当的迭代器,但我想不出什么。
(我还分别具有与编码问题在文件中读取,但这是另一个问题完全...)
哇。我现在觉得很蠢。但是,谢谢。 – Pterosaur