[Python-Dev] listcomps vs. for loops

Guido van Rossum guido at python.org
Wed Oct 22 13:47:42 EDT 2003


> How about an until keyword in generator expressions:

New keywords are not on the table for generator expressions.  You
could do this with 'while' (which is just 'until not' -- note that
your example uses that :-) but I'd be against making this part of the
syntax more complex.  You can do that with itertools.takewhile or
dropwhile anyway.

> And we could have accumulators first() and last():
> 
> def first(it):
> 	return it.next()

This begs for using a plain old loop statement with a 'break'.

> def last(it):
> 	for value in it:
> 		pass
> 	return value

What if it is empty?

> first(line for line in file if line.startswith("#"))
> 
> if not last(file):
> 	# last line not terminated

The comment is incorrect.

--Guido van Rossum (home page: http://www.python.org/~guido/)



More information about the Python-Dev mailing list