Devan L wrote: >>>>import timeit >>>>t1 = timeit.Timer('list(i for i in xrange(10))') >>>>t1.timeit() > > 27.267753024476576 > >>>>t2 = timeit.Timer('[i for i in xrange(10)]') >>>>t2.timeit() > > 15.050426800054197 > >>>>t3 = timeit.Timer('list(i for i in xrange(100))') >>>>t3.timeit() > > 117.61078097914682 > >>>>t4 = timeit.Timer('[i for i in xrange(100)]') >>>>t4.timeit() > > 83.502424470149151 > > Hrm, okay, so generators are generally faster for iteration, but not > for making lists(for small sequences), so list comprehensions stay.
Ahh, thanks. Although, it seems like a list isn't very useful if you never iterate over it. ;) Also worth noting that in Python 3.0 it is quite likely that list comprehensions and generator expressions will have the same underlying implementation. So while your tests above satisfy my curiosity (thanks!) they're not really an argument for retaining list comprehensions in Python 3.0. And list comprehensions won't go away before then because removing them will break loads of existing code. STeVe -- http://mail.python.org/mailman/listinfo/python-list