Ordenar una lista en python

Tengo esta lista

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

Pero ahora quiero que la lista se ordene así:

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

Como puede ver, quiero ordenar de mayor a menor, independientemente del signo que tenga cada número, pero mantener el signo, ¿está claro?

Utilice abs como clave para la función sorted o list.sort :

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

Utilizar:

  l.sort(key= abs, reverse = True) 

Las listas se pueden ordenar usando el método sort (). Y el método de clasificación tiene un parámetro, llamado clave, que puede pasar una función. Usando este parámetro, su lista no será ordenada por los valores de la lista, sino por los valores de su función en la lista.

En su caso, debe usar la función abs (), que devolverá el valor absoluto de los elementos de su lista. Entonces, tu lista

 >>> l = [1,-5,10,6,3,-4,-9] 

Se ordenará como fue

 >>> [abs(1),abs(-5),abs(10),abs(6),abs(3),abs(-4),abs(-9)] 

Que debería ser:

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

Para ordenar desde el más grande hasta el más pequeño, use el parámetro reverse = True también.