MRAB wrote:
You should've read the thread entitled "Why don't generators execute
until first yield?"! :-) Michael Torrie gave the URL
http://www.dabeaz.com/generators/Generators.pdf. Your example can be
rewritten as follows:
p = file('/etc/passwd') # No need for readlines() because file's
iterator yields the lines.
r = ( e.strip().split(':') for e in p ) # A generator expression
instead of a list comprehension.
s = [ e[0:1] + e[2:] for e in r ]
Thanks, this is very elegant indeed, but because there are two list
comprehension expressions (the one defining r and the one defining s), it
means that the we're looping twice over the same list instead of once with
the e[0,2:] hypotetical notation ; or am I missing something ?
Yves.
http://www.SollerS.ca
--
http://mail.python.org/mailman/listinfo/python-list