【问题标题】:How to extend/concatenate two iterators in Python [duplicate]如何在 Python 中扩展/连接两个迭代器 [重复]
【发布时间】:2017-10-22 07:54:09
【问题描述】:

我想以一种有效的方式连接两个迭代器。

假设我们有两个迭代器(在 Python3 中)

l1 = range(10)      # iterator over 0, 1, ..., 9
l2 = range(10, 20)  # iterator over 10, 11, ..., 19

如果我们将它们转换为列表,很容易像这样连接

y = list(l1) + list(l2)  # 0, 1, ,..., 19

但是,这可能效率不高。

我想做类似的事情

y_iter = l1 + l2  # this does not work

在 Python3 中执行此操作的好方法是什么?

【问题讨论】:

  • 查看itertools.chain()的文档。

标签: python list python-3.x iterator


【解决方案1】:

使用itertools.chain:

from itertools import chain
y_iter = chain(l1, l2)

它产生来自l1 的所有项目,然后是来自l2 的所有项目。有效地连接产生项目的序列。在这个过程中,它消耗了两者。

【讨论】:

    【解决方案2】:

    你可以使用itertools提供的chain()函数

    itertools.chain()

    【讨论】:

      猜你喜欢
      • 2019-04-15
      • 2013-10-19
      • 2018-04-14
      • 2012-03-08
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      • 2015-01-01
      相关资源
      最近更新 更多