复制迭代器中的每个成员 [英] Duplicate each member in an iterator

查看:82
本文介绍了复制迭代器中的每个成员的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

给出一个迭代器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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆