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

Reply via email to