如何多次产生元素

时间:2014-01-08 14:03:35

标签: python generator

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

def rgen (n):
    for elem in list:
        yield elem

当我打电话给rgen(2)时,我想将该列表的每个元素两次等等。 但我怎么能真正实现呢?

1 个答案:

答案 0 :(得分:10)

再次循环:

def rgen (n):
    for elem in list:
        for times in xrange(n):
            yield elem

我可能会写一个类似于:

的辅助函数
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