在Python中对列表进行排序

问题描述 投票:0回答:4

我有这个清单

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

但现在我希望列表像这样排序:

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

如你所见,我想从高到低排序,无论每个数字有什么符号,但保留符号,是否清楚?

python list sorting absolute-value
4个回答
59
投票

使用

abs
作为
sorted
功能或
list.sort
:

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

16
投票

用途:

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

可以使用 sort() 方法对列表进行排序。 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参数。


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

请参阅此处了解更多详情。


0
投票

在Python中对列表进行排序。我提供带有输出数据的代码:

代码:

example_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]

example_list.sort()
print("Ascending ordered list: ", example_list)

example_list.sort(reverse=True)
print("Descending ordered list: ", example_list)

输出:

Ascending order: [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
Descending order: [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

如果此代码适合您。请点赞。

© www.soinside.com 2019 - 2024. All rights reserved.