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

6次阅读

共计 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 集中营】,专一后端编程实战,原创文章每天更新!

正文完
 0