复制迭代器中的每个成员 [英] Duplicate each member in an iterator
本文介绍了复制迭代器中的每个成员的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
给出一个迭代器i
,我想要一个迭代器,该迭代器产生每个元素n
次,即此函数的等效项
Given an iterator i
, I want an iterator that yields each element n
times, i.e., the equivalent of this function
def duplicate(i, n):
for x in i:
for k in range(n):
yield x
为此有一个班轮吗?
相关问题:复制列表中的每个成员-python ,但是zip
解决方案在这里不起作用.
Related question: duplicate each member in a list - python, but the zip
solution doesn't work here.
推荐答案
如果您要重复复制每个元素,这是我的简单解决方案.它返回一个生成器表达式,该表达式应该具有存储效率.
This is my simple solution, if you want to duplicate each element same times. It returns a generator expression, which should be memory efficient.
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]
[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]
这篇关于复制迭代器中的每个成员的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文