给定一个迭代器 i
,我想要一个生成每个元素 n
次的迭代器,即等效于此函数
def duplicate(i, n):
for x in i:
for k in range(n):
yield x
有单线的吗?
相关问题:duplicate each member in a list - python , 但 zip
解决方案在这里不起作用。
最佳答案
如果您想同时复制每个元素,这是我的简单解决方案。它返回一个生成器表达式,这应该是内存高效的。
def duplicate(i, n):
return (k for k in i for j in range(n))
一个示例用法可以是,
print (list(duplicate(range(1, 10), 3)))
打印,
[1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9]
关于python - 复制迭代器中的每个成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36002647/