大话 Python:python 基础巩固 -- 内置排序函数 sort 与 sorted

在 python 语言的内置对象中存在两个比较常用的排序函数:sort、sorted,另外常用的科学计算库 numpy 中的 也提供了很多的排序支持。本小节主要说明内置排序方法 sort、sorted 的使用场景,后续篇幅中会针对 numpy 的使用进行说明。

1、sort() 函数的简单使用

特点:sort() 函数只有在 list 列表的对象中才可以使用,直接该表列表本身的顺序不会生成新的列表对象,字符串按照 ASCII 码进行排序、中文按照 unicode 编码进行从小到大的排序。

默认不使用可选参数进行排序

1if __name__ == '__main__':
2   # 定义列表
3   list_ = list([5,2,3,4,6,1])
4   # 执行排序
5   list_.sort()
6   # 结果
7   print list_

使用可选参数 reverse 进行排序,从大到小排序

1if __name__ == '__main__':
2    # 定义列表
3    list_ = list([5, 2, 3, 4, 6, 1])
4    # 执行排序
5    list_.sort(reverse=True)
6    # 结果
7    print list_

使用可选参数 cmp 进行排序,cmp 函数主要是用于比较,通过比较大小的方式来进行排序

1if __name__ == '__main__':
2    # 定义列表
3    list_ = [('e',2),('a',1),('c',3),('d',4)]
4    # 执行排序
5    list_.sort(cmp=lambda m,n:cmp(m[1],n[1]))
6    # 结果
7    print list_

lambda 表达式说明:lambda m,n:cmp(m[1],n[1]) 表示元素对象的第1个位置也就是 2,1,3,4 之间进行比较后返回升序的新迭代对象。

2、sorted() 函数参数的妙用

特点:sorted(iterable,cmp,key,reverse)函数可以对可迭代的序列进行排序,并且返回一个新的对象、不对原有的列表对象进行修改。

默认不使用可选参数进行排序

1if __name__ == '__main__':
2   # 定义列表
3   list_ = ['d','f','a','c','b','e']
4   # 执行排序
5   list_2 = sorted(list_)
6   # 结果
7   print list_2

使用可选参数 key 进行排序,指定可迭代对象中的一个元素来进行排序

1if __name__ == '__main__':
2   # 定义列表
3   list_ = [('e',2),('a',1),('c',3),('d',4)]
4   # 执行排序
5   list_2 = sorted(list_,key=lambda n:n[1])
6   # 结果
7   print list_2

lambda 表达式说明:lambda n:n[1],n 代表每个元素,比如:(‘e’,2) 就是其中一个元素,n[1] 代表每个元素上的第一个位置,在 (‘e’,2) 中第一个位置正好是 2。由此可见,此迭代对象中是以 2,1,3,4 的升序为标准进行排序的。

使用可选参数 cmp 进行排序,cmp 函数主要是用于比较,通过比较大小的方式来进行排序

1if __name__ == '__main__':
2   # 定义列表
3   list_ = [('e',2),('a',1),('c',3),('d',4)]
4   # 执行排序
5   list_2 = sorted(list_,cmp=lambda m,n:cmp(m[0],n[0]))
6   # 结果
7   print list_2

lambda 表达式说明:lambda m,n:cmp(m[0],n[0]) 表示元素对象的第0个位置也就是 e,a,c,d 之间进行比较后返回升序的新迭代对象。

使用可选参数 reverse 进行排序,从大到小排序

1if __name__ == '__main__':
2   # 定义列表
3   list_ = ['d','f','a','c','b','e']
4   # 执行排序
5   list_2 = sorted(list_,reverse=True)
6   # 结果
7   print list_2

更多精彩前往微信公众号【Python 集中营】,专注后端编程实战,原创文章每天更新!

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python 集中营

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值