[Python-Dev] Iterator addition?
Moshe Zadka
m@moshez.org
Mon, 30 Jul 2001 11:38:45 +0300
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