如何在Python中扩展/连接两个迭代器

2024-04-20 02:59:41 发布

您现在位置:Python中文网/ 问答频道 /正文

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

假设我们有两个迭代器(在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中,什么是好的方法?


Tags: l1列表方式notrangethispython3list
2条回答

使用^{}

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

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

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

itertools.chain()

相关问题 更多 >