sort the list

Fredrik Lundh fredrik at pythonware.com
Mon Nov 21 07:07:19 EST 2005


Shi Mu wrote:

> I have a list like [[1,4],[3,9],[2,5],[3,2]]. How can I sort the list
> based on the second value in the item?
> That is,
> I want the list to be:
> [[3,2],[1,4],[2,5],[3,9]]

since you seem to be using 2.3, the solution is to use a custom
compare function:

    >>> L = [[1,4],[3,9],[2,5],[3,2]]
    >>> def mycmp(a, b):
    ...     return cmp(a[1], b[1])
    ...
    >>> L.sort(mycmp)
    >>> L
    [[3, 2], [1, 4], [2, 5], [3, 9]]

under 2.4, you can use the key argument together with the item-
getter function to sort on a given column; look for "itemgetter" on
this page for some examples:

    http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/305304

</F>






More information about the Python-list mailing list