pythonlistsortingabsolute-value

Sort a list of numbers by absolute value (ignoring/disregarding the sign)


I have this list

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

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 in the result.


Solution

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

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