Python:在gen开头插入元素

2024-05-14 17:57:30 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我有发电机,例如:

g = (i for i in range(10))

稍后我要更新生成器,以便生成的第一个元素现在是其他元素,最“python”的方法是什么?你知道吗

显然,我可以定义一个基本的generator extender函数,例如:

def extend(generator, new_elements):
    for element in new_elements:
        yield element
    for element in generator:
        yield element

但我想知道这是必要的还是有更好的方法?你知道吗


Tags: 方法函数in元素newfor定义def
2条回答

您可以使用itertools.chain来实现:

>>> from itertools import chain
>>> g = (i for i in range(10))
>>> list(chain(['a','b','c'], g))
['a', 'b', 'c', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

您可以使用以下功能:

def chain(*iterables):
    for it in iterables:
        yield from it

相关问题 更多 >

    热门问题