[EMAIL PROTECTED] wrote: > Given a list of iterators, I'd like to have a new one that would > cyclically walk over the list calling the next() method of the iterators > (removing any iterator which is exhausted). It should also support adding > a new iterator to the list; it should be added in front of the current > position (so that it's called only after all the others). This is what I > was able to write with my zero python skills (self.iters is the list of > iterators, self.i is the index of the iterator that should be used next). > Is there a nicer/more pythonic solution, maybe using generators?
A generator version: def iterconcat (collectionlist): for collection in collectionlist: for element in collection: yield element Extending collectionlist at runtime will work only with lists and similar collections. And you'll need to keep a reference to it as well. And it would be called after all the others, which matches your description, but not your code. Daniel -- http://mail.python.org/mailman/listinfo/python-list