如何在Python中修改生成器?

bod*_*ydo 7 python generator

Python中是否有一个通用接口来修改生成器的行为?

例如,我想修改现有的生成器以在流中插入一些值并删除一些其他值.

我怎么做?

谢谢,Boda Cydo

Mar*_*ers 7

您可以使用itertools提供的函数来生成生成器并生成新的生成器.

例如,您可以使用takewhile直到不再满足谓词,并链接到一系列新值.

查看其他示例的文档,包括ifilter,dropwhileislice之类的内容.


Chr*_* B. 6

您可以将发电机包装在您自己的发电机中.

from itertools import count

def odd_count():
    for i in count():
        if i % 2:
            yield i
Run Code Online (Sandbox Code Playgroud)