Robert Kern wrote:

Mike Meyer wrote:

Ok, we've added list comprehensions to the language, and seen that
they were good. We've added generator expressions to the language, and
seen that they were good as well.

I'm left a bit confused, though - when would I use a list comp instead
of a generator expression if I'm going to require 2.4 anyway?

If you want a list right away you'd use a list comprehension. X =[i for i in something() if somethingelse()] random.shuffle(X) print x[23]

On the other hand it's generator expressions which should be used
only when the code can be written in as a pipe.  For example a filter
of a -otherwise- very long list:

make_fractal_with_seed (x for x in range(100000000) if fibonacci_prime (x))




Never. If you really need a list

list(x*x for x in xrange(10))

Sadly, we can't remove list comprehensions until 3.0.


Why??? Then we should also remove: x=[] to x=list() x=[1,2,3] to x=list(1,2,3)

I think "list" is useful only:
1) to subclass it
2) to convert a list/tuple/string to a list, which is
done extremely fast.

But for iterators I find the list comprehension syntax nicer.


jfj

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to