没有人建议过发电机,我很惊讶。这是我的处理方式:
def words(stringIterable):
#upcast the argument to an iterator, if it's an iterator already, it stays the same
lineStream = iter(stringIterable)
for line in lineStream: #enumerate the lines
for word in line.split(): #further break them down
yield word
现在,这可以在您可能已经在内存中的简单句子列表中使用:
listOfLines = ['hi there', 'how are you']
for word in words(listOfLines):
print(word)
with open('words.py', 'r') as myself:
for word in words(myself):
print(word)