Devan L wrote: > List comprehensions are faster than generator comprehensions for > iterating over smaller sequences.
Could you give me an example? For the simple one below, the generator expression was faster: $ python -m timeit "for x in (i for i in xrange(10)): y = x" 100000 loops, best of 3: 4.75 usec per loop $ python -m timeit "for x in [i for i in xrange(10)]: y = x" 100000 loops, best of 3: 5.33 usec per loop And for another one, the results are basically indistinguishable: $ python -m timeit "for x in (i for i in 'abcdefg'): y = x" 100000 loops, best of 3: 3.82 usec per loop $ python -m timeit "for x in [i for i in 'abcdefg']: y = x" 100000 loops, best of 3: 3.87 usec per loop I vaguely remember that in Python 2.4 conversion to tuples can take longer because of the tuple extension code: $ python -m timeit "tuple(i for i in xrange(10000))" 100 loops, best of 3: 2.24 msec per loop $ python -m timeit "tuple([i for i in xrange(10000)])" 100 loops, best of 3: 1.85 msec per loop But IIRC, this is supposed to be fixed in Python 2.5. I found that for some longer sequences, generator expressions were notably faster: $ python -m timeit "set(i for i in xrange(10000))" 100 loops, best of 3: 3.77 msec per loop $ python -m timeit "set([i for i in xrange(10000)])" 100 loops, best of 3: 4.54 msec per loop Timings that validate your statement would be appreciated. ;) STeVe -- http://mail.python.org/mailman/listinfo/python-list