List comprehensions performance
Alex Martelli
aleaxit at yahoo.com
Thu Sep 30 04:48:37 EDT 2004
More information about the Python-list mailing list
Thu Sep 30 04:48:37 EDT 2004
- Previous message (by thread): List comprehensions performance
- Next message (by thread): List comprehensions performance
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Neuruss <luismg at gmx.net> wrote: ... > What I'd like to know is if using list comprehensions would give me a > performance advantage over traditional for loops or not. Probably, a little, depending on the exact Python release you're using, and on exactly what you're doing -- as others have suggested, timeit.py can help. Don't expect _dramatic_ differences. > I'm getting fond of list comprehensions, but I wonder if it's wise to > abuse of them... No, by definition of "abuse". Use list comprehensions to make lists, not instead of perfectly normal loops. Consider for example: kallisti:~/cb alex$ python2.4 timeit.py -s'def f():pass' 'for x in xrange(999): f()' 1000 loops, best of 3: 1.25e+03 usec per loop kallisti:~/cb alex$ python2.4 timeit.py -s'def f():pass' 'for x in xrange(999): f()' 1000 loops, best of 3: 1.29e+03 usec per loop kallisti:~/cb alex$ python2.4 timeit.py -s'def f():pass' '[f() for x in xrange(999)]' 1000 loops, best of 3: 1.45e+03 usec per loop kallisti:~/cb alex$ python2.4 timeit.py -s'def f():pass' '[f() for x in xrange(999)]' 1000 loops, best of 3: 1.44e+03 usec per loop So, in this case, abusing list comprehensions slows you down by over 10%. More generally, _who cares_ about this kind of speedups?! Premature optimization is the root of all evil in programming. Make your programs clear, simple, readable -- that's ALWAYS important! So is using general algorithms and data structures with good O() characteristics if the input size is liable to grow a lot. But squeezing out 10% or 20% here or there is going to matter in a TINY minority of cases. Don't distort your coding for such purposes! Alex
- Previous message (by thread): List comprehensions performance
- Next message (by thread): List comprehensions performance
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list