这三个排序方法应对日常工作基本够用
先说一下三者的区别
sort, sorted 是用在 list 数据类型中的排序方法
argsort 是用在 numpy 数据类型中的排序方法( numpy 里也有一个 sort 方法,下面会讲)
sort 和 sorted 的区别如下👇
先看两个简单的升序排序,分别使用 sorted 和 sort 方法
# sorted
num_list = [1, 8, 2, 3, 10, 4, 5]
ordered_list = sorted(num_list)
print(ordered_list) # [1, 2, 3, 4, 5, 8, 10]
# sort
num_list = [1, 8, 2, 3, 10, 4, 5]
num_list.sort()
print(num_list) # [1, 2, 3, 4, 5, 8, 10]
可以看出 sorted 并没有修改原来的数组,而是将排序的结果作为参数传递给一个新的数组,而 sort 则在原数组上直接进行了排序
区别就是 sorted 需要一个变量接收排序结果,sort不用
建议使用 sorted,因为 sort 虽然代码更简洁,但是会修改原数组,这样不灵活,如果你有多个地方同时使用了这个数组,那么经过 sort 操作之后的数组就已经不是原来那个数组了,debug的时候很麻烦
说完了区别,来具体讲讲使用方法
目录索引
1.升序排序
# sorted 升序排序
num_list = [1, 8, 2, 3, 10, 4, 5]
ordered_list = sorted(num_list)
print(ordered_list) # [1, 2, 3, 4, 5, 8, 10]
# sort 升序排序
num_list = [1, 8, 2, 3, 10, 4, 5]
num_list.sort()
print(num_list) # [1, 2, 3, 4, 5, 8, 10]
2.降序排序
# sorted 降序排序
num_list = [1, 8, 2, 3, 10, 4, 5]
ordered_list = sorted(num_list, reverse=True)
print(ordered_list) # [1, 2, 3, 4, 5, 8, 10]
# sort 降序排序
num_list = [1, 8, 2, 3, 10, 4, 5]
num_list.sort(reverse=True)
print(num_list) # [1, 2, 3, 4, 5, 8, 10]
3.如果不想要排序后的值,想要排序后的索引,可以这样做
num_list = [1, 8, 2, 3, 10, 4, 5]
ordered_list = sorted(range(len(num_list)), key=lambda k: num_list[k])
print(ordered_list) # [0, 2, 3, 5, 6, 1, 4]
4.字符串类型排序
# 字符串类型排序
str_list = ['1', '8', '2', '3', '10', '4', '5']
ordered_list = sorted(str_list)
print(ordered_list) # ['1', '10', '2', '3', '4', '5', '8']
str_list = ['A', 'D', 'B', 'N', 'C', 'R', 'V']
ordered_list = sorted(str_list)
print(ordered_list) # ['A', 'B', 'C', 'D', 'N', 'R', 'V']
5.二维数组排序
book_list = [
['北大马克思主义研究', '9787509728529', 2011],
['人的解放', '9787215064003', 2014],
['西方经典悦读 资本论', '9787200092882', 2012]

本文详细介绍了Python中list的sort和sorted方法,以及numpy数组的argsort方法,涵盖升序、降序排序,以及索引获取等应用场景,包括一维和二维数组、字符串、字典及对象的排序方法。
最低0.47元/天 解锁文章
1450

被折叠的 条评论
为什么被折叠?



