[Python-ideas] Optional key to `bisect`'s functions?

Amaury Forgeot d'Arc amauryfa at gmail.com
Wed Feb 8 23:18:54 CET 2012


2012/2/8 Masklinn <masklinn at masklinn.net>

> The ``bisect`` stuff is pretty neat, although probably underused
> (especially the insorts), but their usefulness is limited by the
> requirement that the lists directly contain sortable items, as opposed
> to ``sorted`` or ``list.sort``.
> It's possible to "use" them by copy/pasting the (Python) functions
> into the project/library code and adding either a custom key directly
> or a key function, but while this can still yield an
> order-of-magnitude speed gain over post-sorting sequences, it's
> cumbersome and it loses the advantage of _bisect's accelerators.
> Therefore, I believe it would be pretty neat to add an optional
> ``key=`` keyword (only?) argument, with the same semantics as in
> ``sorted``. It would make ``bisect`` much easier to use especially
> in stead of append + sorted combinations. The key should work for
> both insertion functions and bisection search ones.
> bisect key

This was proposed several times on the issue tracker (search for "bisect
and these proposals have always been rejected:
The last one summarizes the reasons of the rejection.
The documentation (http://docs.python.org/library/bisect.html, "see also")
contains a link to a "SortedCollection" recipe.

I haven't looked at the SortedCollection class in detail, but you could try
to have it included in the stdlib...

Amaury Forgeot d'Arc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20120208/510a247e/attachment.html>

More information about the Python-ideas mailing list