挣扎着python生成器功能

时间:2014-10-22 12:32:05

标签: python generator

我已经检查了几个屈服示例,但我无法弄清楚我应该如何在我的任务中使用它。

我必须创建一个生成器函数,它必须在调用时返回从文件读取的一个单词(然后获取下一个单词,依此类推)。

- Pass file path to the function
- Read in word char by char and assign it to a variable
- ........ yield word

我唯一想知道的是,我怎样才能让生成器函数产生一个单词然后知道哪个是下一个单词。我不是在寻找现成的解决方案,我想了解发生了什么。

1 个答案:

答案 0 :(得分:5)

您的生成器功能将非常类似于将这些单词添加到列表中的非生成器函数。除了将它们添加到列表中之外,您不会产生单词。

因此,将它们添加到列表中的函数将是:

def per_word(filename):
    result = []

    with open(filename) as fh:
        for line in fh:
            for word in line.split():
                result.append(word)

    return result

生成器函数只是简单地产生:

def per_word(filename):
    with open(filename) as fh:
        for line in fh:
            for word in line.split():
                yield word