I’ll give a simplified example here. Suppose I have an iterator in python, and each object that this iterator returns is itself iterable. I want to take all the objects returned by this iterator and chain them together into one long iterator. Is there a standard utility to make this possible?
Here is a contrived example.
x = iter([ xrange(0,5), xrange(5,10)])
x is an iterator that returns iterators, and I want to chain all the iterators returned by x into one big iterator. The result of such an operation in this example should be
equivalent to xrange(0,10), and it should be lazily evaluated.
You can use
itertools.chain.from_iterableIf that’s not available on your version (apparently, it’s new in 2.6), you can just do it manually: