如何多次产生元素

Sap*_*ire 2 python generator

我正在尝试实现一个方法,其中列表的每个元素都得到了与参数说的一样多:

def rgen (n):
    for elem in list:
        yield elem
Run Code Online (Sandbox Code Playgroud)

当我调用rgen(2)时,我想将该列表的每个元素两次等等.但是我怎么能实现它呢?

Jon*_*nts 10

循环再次:

def rgen (n):
    for elem in list:
        for times in xrange(n):
            yield elem
Run Code Online (Sandbox Code Playgroud)

我可能会写一个类似于的辅助函数:

from itertools import chain, repeat

def repeated(iterable, n=1):
    items = chain.from_iterable(repeat(item, n) for item in iterable)
    for item in items:
        yield item

    # Or, in Python3.3 you could do:
    yield from items
Run Code Online (Sandbox Code Playgroud)