I want concatenate two iterators in an efficient way.
Suppose we have two iterators (in 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
from itertools import chain y_iter = chain(l1, l2)
It yields all the items from
l1 and them all the items from
l2. Effectively concatenating the sequence of yielded items. In the process it consumes both.