共计 1868 个字符,预计需要花费 5 分钟才能阅读完成。
在 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 集中营】,专一后端编程实战,原创文章每天更新!
正文完