用python对列表排序

用python对列表排序,python,list,sorting,absolute-value,Python,List,Sorting,Absolute Value,我有这个清单 [1,-5,10,6,3,-4,-9] 但现在我希望列表按如下方式排序: [10,-9,6,-5,-4,3,1] 正如您所见,无论每个数字有什么符号,我都想从高到低排序,但要保持符号清晰吗?使用abs作为排序函数或列表的键。排序: >>> lis = [1,-5,10,6,3,-4,-9] >>> sorted(lis, key=abs, reverse=True) [10, -9, 6, -5, -4, 3, 1] 使用: 可以使用sor

我有这个清单

[1,-5,10,6,3,-4,-9]
但现在我希望列表按如下方式排序:

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

正如您所见,无论每个数字有什么符号,我都想从高到低排序,但要保持符号清晰吗?

使用
abs
作为
排序
函数或
列表的键。排序

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

可以使用sort()方法对列表进行排序。排序方法有一个参数,叫做key,你可以传递一个函数。使用此参数,列表将不会按列表的值排序,而是按列表中函数的值排序

在本例中,应该使用abs()函数,它将返回列表元素的绝对值。那么,你的名单

>>> l = [1,-5,10,6,3,-4,-9]
将按原样进行排序

>>>  [abs(1),abs(-5),abs(10),abs(6),abs(3),abs(-4),abs(-9)]
应该是:

>>> [1 ,-4 ,-5 ,6 ,-9 ,10]
要从最大值到最小值排序,请同时使用reverse=True参数

sorted([5, 2, 3, 1, 4])
有关更多详细信息,请参阅

sorted([5, 2, 3, 1, 4])