sorting list of tuples by second (third...) tuple item

Giovanni Toffoli toffoli at uni.net
Fri Feb 16 12:14:11 EST 2007


Hi,

I'm not in the mailing list.
By Googling, I stepped into this an old post: (Thu Feb 14 20:40:08 CET 2002) 
of Jeff Shannon:
http://mail.python.org/pipermail/python-list/2002-February/128438.html

<<<
def SortOnItem(mylist, index):
    templist = [ (line[index], line) for line in mylist ]
    templist.sort()
    return [ line[1:] for line in templist ]

What this does is build a separate list containing a tuple of the
element that you want to sort on, and the entire line, sorts that
list (by the first element, of course), and then strips that first
element off ..
>>>

It seems to me that the tuples aren't sorted only by the first element but, 
I suppose, other elements are also used if needed to discriminate.
In some cases I got some exceptions when an element of the tuple, other than 
the first, didn't admit comparison.
In these cases I had to use an ad hoc comparison function.

Regards, Giovanni Toffoli








More information about the Python-list mailing list