Sort a list in python

Diego Martínez Giardini picture Diego Martínez Giardini · Oct 5, 2013 · Viewed 16.8k times · Source

I have this list

[1,-5,10,6,3,-4,-9]

But now I want the list to be sorted like this:

[10,-9,6,-5,-4,3,1]

As you can see I want to order from high to low no matter what sign each number has, but keeping the sign, is it clear?

Answer

Ashwini Chaudhary picture Ashwini Chaudhary · Oct 5, 2013

Use abs as key to the sorted function or list.sort:

>>> lis = [1,-5,10,6,3,-4,-9]
>>> sorted(lis, key=abs, reverse=True)
[10, -9, 6, -5, -4, 3, 1]