[Tutor] .sort(key = ???)

John Fouhy john at fouhy.net
Thu Nov 16 23:35:07 CET 2006


On 17/11/06, Dave S <pythontut at pusspaws.net> wrote:
> Hi,
>
> I have a bunch of lists within lists that I need to sort ref item [4], I can't
> access my code at the moment but I basically ...
>
[...]
>
> Having googled I think there is a better way of doing this with the key
> attribute
>
> a.sort(key= ?? )

Yep, that's right.  You need at least python2.4 for this, though.

You need to pass the key= parameter a function that will take an
element of your list, and return the comparison key.

eg:

def item4(elem):
    return elem[4]

a.sort(key=item4)

Since this is a common thing to do, there is a function in the
operator module that you can use, instead of defining your own:

import operator
a.sort(key=operator.itemgetter(4))

(operator.itemgetter(4) will return a function that is basically
equivalent to item4() above)

HTH!

-- 
John.


More information about the Tutor mailing list