On Mon, 30 Jul 2001, Sami Hangaslammi <shang@cc.jyu.fi> wrote:
Since iterator objects work like sequences in several contexts, maybe they could support sequence-like operations such as addition. This would let you write
for x in iter1 + iter2: do_something(x)
instead of
for x in iter1: do_something(x)
for x in iter2: do_something(x)
or the slightly better
for i in iter1,iter2: for x in i: do_something(x)
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) (Note that the first n-2 lines can be refactored. Wasn't there talk about having an iterator module with useful stuff like that?) -- gpg --keyserver keyserver.pgp.com --recv-keys 46D01BD6 54C4E1FE Secure (inaccessible): 4BD1 7705 EEC0 260A 7F21 4817 C7FC A636 46D0 1BD6 Insecure (accessible): C5A5 A8FA CA39 AB03 10B8 F116 1713 1BCF 54C4 E1FE Learn Python! http://www.ibiblio.org/obp/thinkCSpy