我希望以有效的方式连接两个迭代器。
假设我们有两个迭代器(在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中执行此操作的好方法是什么?
答案 0 :(得分:21)
from itertools import chain
y_iter = chain(l1, l2)
它会生成l1
中的所有项目,然后是l2
中的所有项目。有效地连接所产生项目的顺序。在这个过程中它消耗两者。
答案 1 :(得分:1)
您可以使用itertools提供的chain()函数
itertools.chain()