在 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 集中营】,专注后端编程实战,原创文章每天更新!
相关推荐
4-5函数式编程:map_reduce_filter_sorted_偏函数 5-1列表生成式 5-2迭代器 5-3生成器 5-4装饰器 5-5Python编程规范 6-1模块名称空间和导入 6-2模块的执行 6-3os和sys模块介绍和使用 6-4第三方模块的安装 7-1类与...
模拟python sorted()函数
sort 与 sorted 区别: sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。 list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而 sorted 方法返回的是一个新的 list,而不是...
Sorted Containers-Python可排序的容器类型:SortedList, SortedDict, and SortedSet使用纯python编写,但是速度跟用C实现一样快
Python中有2个排序函数,一个是list内置的sort()方法,另一个是全局的sorted()方法 sorted(iterable,key=None,reverse=False) #返回排好序的新列表,不改变对象本身,默认升序;reverse:-True降序 -False 正序对所有可...
排序算法排序算法排序算法排序算法排序算法排序算法排序算法排序算法排序算法
SortedList、SortedDict 和 SortedSet 类型的快速、纯 Python 实现。 反垃圾邮件 打击垃圾邮件的图书馆。 - 一个简单且高度可定制的 Django 应用程序,可将验证码图像添加到任何 Django 表单。 - 简单的 Django 垃圾...
python 中sorted与sort有什么区别 sort(cmp=None, key=None, reverse=False) sorted(iterable, cmp=None, key=None, reverse=False) sort是容器的函数,用List的成员函数sort进行排序 sorted是Python的内建函数相同...
python语言中的列表排序方法有三个:reverse反转/倒序排序、sort正序排序、sorted可以获取排序后的列表。在更高级列表排序中,后两中方法还可以加入条件参数进行排序。 reverse()方法 将列表中元素反转排序,比如...
sorted() 函数对所有可迭代的对象进行排序操作。返回重新排序的列表。 sort 与 sorted 区别: sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操 作。 list 的 sort 方法返回的是对已经存在的...
│ │ 2、String的内置函数.py │ │ 3、布尔值和空值.py │ │ 4、变量的类型问题.py │ │ │ └─video │ 千锋Python教程:17.运算符&字符串1.mp4 │ 千锋Python教程:18.运算符&字符串2.mp4 │ 千锋Python教程...
13)..Added: "User" and "Session" columns to processes list, processes list is also sorted by session first 14)..Added: Support for showing current user processes only 15)..Added: Expanding environment...
python库,解压后可用。 资源全名:sorted_in_disk-1.0.3-py3-none-any.whl
Laravel开发-laravel-sorted-queue Laravel排序队列驱动程序
今天在做一道题时,因为忘了Python中sort和sorted的用法与区别导致程序一直报错,找了好久才知道是使用方法错误的问题!现在就大致的归纳一下sort和sorted的用法与区别 1. sort: sort是Python中列表的方法 sort()...
83-删除排序链表中的重复元素:remove-duplicates-from-sorted-list 92-反转链表II:reverse-linked-listt-ii 141-环形链表:linked-list-cycle 142-环形链表:linked-list-cycle-ii 160-相交链表:intersection-of-two-...
Array :: Sorted :: Util-(本机)排序数组的Raku实用程序 概要 use Array ::Sorted::Util; # imports finds, inserts, deletes my @a; inserts(@a, $_ ) for ; say @a; # [a b c d e f g h i j] . say with finds(@...