[Python-Dev] Iterator addition?

Just van Rossum just@letterror.com
Mon, 30 Jul 2001 10:53:35 +0200


Moshe Zadka wrote:

> No, instead of:
> 
> 
> class concat:
> 
>     def __init__(self, *iterators):
>         self.iterators = list(iterators)
> 
>     def __iter__(self): return self
> 
>     def next(self):
>         while self.iterators:
>             try:
>                 return self.iterators[0].next() 
>             except StopIteration:
>                 del self.iterators[0]
>         else:
>             raise StopIteration
> 
> 
> for x in concat(iter1, iter2):
>     do_something(x)

Or:

from __future__ import generators

def concat(*iterators):
    for i in iterators:
        for x in i:
            yield x

for x in concat(iter1, iter2):
    do_something(x)


Just