Por fin después de tanto trabajar hemos dado con el resultado de esta dificultad que muchos de nuestros usuarios de este sitio web han presentado. Si quieres aportar algún dato puedes dejar tu comentario.
Solución:
Usar abs
como key hacia sorted
función o list.sort
:
>>> lis = [1,-5,10,6,3,-4,-9]
>>> sorted(lis, key=abs, reverse=True)
[10, -9, 6, -5, -4, 3, 1]
Usar:
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 key, que puede pasar una función. Con este parámetro, su lista no se ordenará 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 lo 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 de mayor a menor, utilice también el parámetro reverse=True.
No se te olvide difundir esta división si te valió la pena.