python - 复制迭代器中的每个成员

标签 python iterator

给定一个迭代器 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/

相关文章:

python pandas获取列值的第一位数字

c++ - 将 std::set 分配给 2D std::vector of ints

c++ - 迭代器模式示例在 C++ 中给出错误

C++通过迭代器更新 vector 元素

c++ - 在 vs2008 SP1 中禁用检查迭代器时出现问题 (_HAS_ITERATOR_DEBUGGING=0)

c++ - 使用 shared_ptr 列表撤消/重做

python - Keras GaussianNoise 层没有效果?

python - tokenizer.texts_to_sequences Keras Tokenizer 给出几乎全零

python - 在具有离散颜色条的 pcolormesh 图中使用扩展

python - Windows 上的 tensorflow GPU : No module named '_pywrap_tensorflow_internal'