[Python-Dev] Re: PEP 322: Reverse Iteration
Phillip J. Eby
pje at telecommunity.com
Wed Nov 5 12:02:09 EST 2003
At 07:28 AM 11/5/03 -0800, Guido van Rossum wrote:
> > Why not change enumerate() to return an iterable, rather than an
> > iterator? Then its __reversed__ method could attempt to delegate to
> > the underlying iterable. Is it likely that anyone relies on
> > enumerate() being an iterator, rather than an iterable?
>
>I find it rather elegant to use enumerate() on a file to generate line
>numbers and lines together (adding 1 to the index to produce a more
>conventional line number). What's more elegant than
>
> for i, line in enumerate(f):
> print i+1, line,
>
>to print a file with line numbers??? I've used this in throwaway
>code at least, and would hate to lose it.
I thought 'for x in y' always called 'iter(y)', in which case the above
still works. It's only this:
ef = enumerate(f)
while 1:
try:
i,line = ef.next()
print i+1, line,
except StopIteration:
break
That would break.
More information about the Python-Dev
mailing list