Re: sort problem
Kent Johnson wrote: or learn about decorate-sort-undecorate: lst = [ ...whatever ] lst = [ x[3], i, x for i, x in enumerate(lst) ] I think that here the code must be changed (for the future): lst = [ (x[3], i, x) for i, x in enumerate(lst) ] lst.sort() lst = [ x for _, _, x in lst ] Wow, this work with my py 2.3! Kent Thanks, Michele -- http://mail.python.org/mailman/listinfo/python-list
Re: sort problem
Michele Petrazzo [EMAIL PROTECTED] wrote: Lasse Vågsæther Karlsen wrote: How about: list.sort(key=lambda x: x[3]) Does that work? Yes, on my linux-test-box it work, but I my developer pc I don't have the 2.4 yet. I think that this is a good reason for update :) Updating is a good idea, and will let you get even faster by avoiding the lambda: import operator thelist.sort(key=operator.itemgetter(3)) However, until you can upgrade you might be happy enough with a direct implementation of the decorate-sort-undecorate (DSU) idiom which they new key= named argument to sort implements. To wit: aux = [ (x[3], x) for x in thelist ] aux.sort() thelist[:] = [ x[-1] for x in aux ] Note that the decoration can include as many columns as you want, transformations obtained by calling int(...) or str(...) on some of the columns, and so on. This applies to key= in 2.4 just as well as to the (slightly slower) direct implementation in 2.3 and earlier. Alex -- http://mail.python.org/mailman/listinfo/python-list
Re: sort problem
How about: list.sort(key=lambda x: x[3]) Does that work? -- http://mail.python.org/mailman/listinfo/python-list
Re: sort problem
Lasse Vågsæther Karlsen wrote: How about: list.sort(key=lambda x: x[3]) Does that work? Yes, on my linux-test-box it work, but I my developer pc I don't have the 2.4 yet. I think that this is a good reason for update :) Thanks, Michele -- http://mail.python.org/mailman/listinfo/python-list
Re: sort problem
Michele Petrazzo wrote: Lasse Vågsæther Karlsen wrote: How about: list.sort(key=lambda x: x[3]) Better to use key=operator.itemgetter(3) Yes, on my linux-test-box it work, but I my developer pc I don't have the 2.4 yet. I think that this is a good reason for update :) or learn about decorate-sort-undecorate: lst = [ ...whatever ] lst = [ x[3], i, x for i, x in enumerate(lst) ] lst.sort() lst = [ x for _, _, x in lst ] Kent Thanks, Michele -- http://mail.python.org/mailman/listinfo/python-list