Steve,

Hey, thanks. I'll try that.

Horace

In article <[EMAIL PROTECTED]>,
 Steven Bethard <[EMAIL PROTECTED]> wrote:

> Horace Enea wrote:
> > My example wasn't very good. Here's another try:
> > 
> > def foo():
> >    yield 1
> >    yield 2
> >    yield 3
> > 
> > f = foo()
> > f.next()
> > 1
> > 
> > g=copy(f)  # copy the generator after an iteration
> > 
> > f.next()
> > 2
> > f.next()
> > 3
> > 
> > g.next()      
> > 2
> > 
> > I want to copy the generator's state after one or more iterations.
> 
> You could use itertools.tee():
> 
>  >>> def foo():
> ...     yield 1
> ...     yield 2
> ...     yield 3
> ...
>  >>> import itertools
>  >>> f = foo()
>  >>> f.next()
> 1
>  >>> f, g = itertools.tee(f)
>  >>> f.next()
> 2
>  >>> f.next()
> 3
>  >>> g.next()
> 2
>  >>> g.next()
> 3
> 
> But note that if your iterators get really out of sync, you could have a 
> lot of elements stored in memory.
> 
> STeVe
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to