Giovanni Toffoli a écrit : > 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's the "decorate/sort/undecorate" pattern. You may also google for "schwarzian transform" >>>> > > 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. Yes. When compared, tuples first compare on the first element, then on the second etc... > 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. Did you try the sorted() function ? Used with operator.itemgetter as the 'key' argument, it may do the trick. -- http://mail.python.org/mailman/listinfo/python-list