Q: sort's key and cmp parameters

Raymond Hettinger python at rcn.com
Sat Oct 3 02:25:59 EDT 2009


[Paul Rubin]
> The idea was that you have a list of trees that you want to sort, and
> an ordering relation between trees:
>
>    def gt(tree1, tree2): ...

Are the trees user defined classes?  Can the gt() function be added
incorporated as __lt__ method so that you can just run a plain sort:

    sort(list_of_trees)

Is the recursive search order something you can turn into a straight
sequence:

    sort(list_of_trees, key=flattener)

IOW, if there is an ordering relation between the trees, why can't
it be either part of the tree API or collapsable into a list of
successive nodes to be compared.

>From the sound of it, the trees are static during the sort and
would get a nice O(n log n) --> O(n) speed-up if a key function
were allowed to flatten them in a single pass.


Raymond



More information about the Python-list mailing list