> I did a quick experiment: > > >python -m timeit -s "from operator import itemgetter; l=range(8)" > "itemgetter(1)(l)" > 1000000 loops, best of 3: 0.548 usec per loop > > >python -m timeit -s "l=range(8)" "(lambda x:x[1])(l)" > 1000000 loops, best of 3: 0.597 usec per loop > > That's far less of a difference than I expected from itemgetter!
You've timed how long it takes to both construct and apply the retrieval function. The relevant part is only the application: C:\pydev>python -m timeit -r9 -s "from operator import itemgetter; s=range(8); f=itemgetter(1)" "f(s)" 1000000 loops, best of 9: 0.806 usec per loop C:\pydev>python -m timeit -r9 -s "s=range(8); f=lambda x:x[1]" "f(s)" 100000 loops, best of 9: 1.18 usec per loop So the savings is about 30% which is neither astronomical, nor negligible. Raymond _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com