Kristján Valur Jónsson <kristjan <at> ccpgames.com> writes:
> timeit.Timer("(l.sort(), l[-1])",
> s).timeit(1000)
> 
> 0.29406761513791935

This is clearly wrong. l.sort() will sort the list in place when it is first
invoked, and therefore will be very fast in subsequent calls.

Compare with:

    timeit.Timer("sorted(l)[-1]", s).timeit(1000)

which really does what you are looking for (sorting then taking the max *on
every iteration*), and is much slower.

As for heapq, its critical parts are already implemented in C as of Python 
2.5.2:

>>> import heapq, _heapq
>>> _heapq
<module '_heapq' from '/usr/lib/python2.5/lib-dynload/_heapq.so'>
>>> heapq.heapify is _heapq.heapify
True



_______________________________________________
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

Reply via email to