[Python-ideas] priorityqueue, sortedlist in collections?

Tal Einat taleinat at gmail.com
Fri Mar 2 13:25:39 CET 2007


On 3/2/07, Adam Olsen <rhamph at gmail.com> wrote:
>
> On 3/1/07, Jason Orendorff <jason.orendorff at gmail.com> wrote:
> > I wonder if anyone else finds the heapq and bisect APIs a little dated.


Ooh, me, me!

> It seems like these things could be offered in a more intuitive and
> > featureful way by making them classes.  They could go in the
> > collections module:


I agree, at least for heapq.  The algorithm involves enough voodoo
> that it's not obvious how to extend it, so it might as well be wrapped
> in a class that hides as much as possible.


Sounds good to me. +1

The same can't be said for bisect though.  All it does is replace del
> a[bisect_left(a, x)] with a.remove(x).  A little cleaner, but no more
> obvious.  And the cost is still O(n) since it involves moving all the
> pointers after x.


A sortedlist class seems like a useful abstraction to me, since while using
an instance of such a class, you could be sure that the list remains sorted.
For example, you don't have to worry about it being changed outside of your
code and no longer being sorted.

Also, wouldn't a sortedlist class also have in insert() method to replace
bisect.insort(), as well as different implementations of __contains__ and
index?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20070302/1eaf0d9c/attachment.html>


More information about the Python-ideas mailing list