thebjorn <[EMAIL PROTECTED]> wrote: > I'm not sure which Python is default for Ubuntu 6.06, but assuming you > can access a recent one (2.4), the list.sort() function takes a key > argument (that seems to be rather sparsely documented in the tutorial > and the docstring...). E.g.: > >>>> lst = [(1,2,4),(3,2,1),(2,2,2),(2,1,4),(2,4,1)] >>>> lst.sort(key=lambda (a,b,c):(c,b)) >>>> lst > [(3, 2, 1), (2, 4, 1), (2, 2, 2), (2, 1, 4), (1, 2, 4)] >>>>
It may be simpler just to use the key argument multiple times (not forgetting to specify the keys in reverse order, i.e. the most significant comes last). So with this example, sorting by column 2 then column 1 and ignoring column 0 can be done by: >>> from operator import itemgetter >>> lst = [(1,2,4),(3,2,1),(2,2,2),(2,1,4),(2,4,1)] >>> lst.sort(key=itemgetter(1)) >>> lst.sort(key=itemgetter(2)) >>> lst [(3, 2, 1), (2, 4, 1), (2, 2, 2), (2, 1, 4), (1, 2, 4)] or even: >>> from operator import itemgetter >>> lst = [(1,2,4),(3,2,1),(2,2,2),(2,1,4),(2,4,1)] >>> for keycolumn in reversed([2,1]): lst.sort(key=itemgetter(keycolumn)) >>> lst [(3, 2, 1), (2, 4, 1), (2, 2, 2), (2, 1, 4), (1, 2, 4)] The important point here is to remember that the sort is stable (so you can do multiple sorts without disrupting earlier results). -- http://mail.python.org/mailman/listinfo/python-list