标签: python generator
我是否可以从Python派生出一个通用接口来修改生成器的行为?
例如,我想修改现有的生成器以在流中插入一些值并删除其他一些值。
我该怎么做?
谢谢,Boda Cydo
答案 0 :(得分:7)
您可以使用itertools提供的功能来获取生成器并生成新的生成器。
例如,您可以使用takewhile直到不再满足谓词,并在新系列值上使用chain。
请查看其他示例的文档,包括ifilter,dropwhile和islice等内容,仅举几例。
答案 1 :(得分:5)
您可以将生成器包装在您自己的生成器中。
from itertools import count def odd_count(): for i in count(): if i % 2: yield i