如何在Python中修改生成器?

7 投票
2 回答
4510 浏览
提问于 2025-04-15 20:16

在Python中,有没有一个通用的接口可以让我去修改生成器的行为呢?

举个例子,我想对一个已经存在的生成器进行修改,插入一些值到生成器的输出中,同时去掉一些其他的值。

我该怎么做呢?

谢谢,Boda Cydo

2 个回答

7

你可以把这个生成器放在你自己写的生成器里面。

from itertools import count

def odd_count():
    for i in count():
        if i % 2:
            yield i
7

你可以使用 itertools 提供的函数来处理一个生成器,并生成一个新的生成器。

比如,你可以使用 takewhile 函数,直到某个条件不再满足为止;还可以使用 chain 函数来连接一系列新的值。

你可以查看文档,了解更多示例,包括像 ifilterdropwhileislice 这些函数。

撰写回答