Python: sorted() 函数
描述
sorted() 函数对所有可迭代的对象进行排序操作。
sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
示例:
>>> sorted([5, 2, 3, 1, 4])
[1, 2, 3, 4, 5]
>>> a=[5,2,3,1,4]
>>> a.sort()
>>> a
[1,2,3,4,5]
注1、你也可以使用 list 的 list.sort() 方法。这个方法会修改原始的 list(返回值为None)。通常这个方法不如sorted()方便-如果你不需要原始的 list,list.sort()方法效率会稍微高一些。
注2、另一个区别在于list.sort() 方法只为 list 定义。而 sorted() 函数可以接收任何的 iterable。
>>> sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})
[1, 2, 3, 4, 5]
注3、利用key进行倒序排序
>>> example_list = [5, 0, 6, 1, 2, 7, 3, 4]
>>> result_list = sorted(example_list, key=lambda x: x*-1)
>>> print(result_list)
[7, 6, 5, 4, 3, 2, 1, 0]
>>>
注4、要进行反向排序,也通过传入第三个参数 reverse=True:
>>> example_list = [5, 0, 6, 1, 2, 7, 3, 4]
>>> sorted(example_list, reverse=True)
[7, 6, 5, 4, 3, 2, 1, 0]
语法
sorted 语法:
sorted(iterable, key=None, reverse=False)
参数说明:
- iterable -- 可迭代对象。
- key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
- reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
返回值
返回重新排序的列表。
精巧例子:
例子1:通过 key 的值来进行数组/字典的排序,比如:
array = [{"age":20,"name":"a"},{"age":25,"name":"b"},{"age":10,"name":"c"}]
array = sorted(array,key=lambda x:x["age"])
print(array)
输出结果:
[{'age': 10, 'name': 'c'}, {'age': 20, 'name': 'a'}, {'age': 25, 'name': 'b'}]
例子2:多列排序
先按照成绩降序排序,相同成绩的按照名字升序排序:
d1 = [{'name':'alice', 'score':38}, {'name':'bob', 'score':18}, {'name':'darl', 'score':28}, {'name':'christ', 'score':28}]
l = sorted(d1, key=lambda x:(-x['score'], x['name']))
print(l)
输出结果:
[{'name': 'alice', 'score': 38}, {'name': 'christ', 'score': 28}, {'name': 'darl', 'score': 28}, {'name': 'bob', 'score': 18}]
例子3:倒序排序
example_list = [34, 34, 55, 66, 77, 45, 32, 24]
result_list = sorted(example_list, key=lambda x: -x)
result_list
输出结果:
[77, 66, 55, 45, 34, 34, 32, 24]
例子4:对字符串中的关键字排序
test1 = ['data/test1/8973.jpg',
'data/test1/8974.jpg',
'data/test1/8976.jpg',
'data/test1/8975.jpg']imgs = sorted(test1, key=lambda x: int(x.split('.')[-2].split('/')[-1]))
imgs
输出结果:
['data/test1/8973.jpg', 'data/test1/8974.jpg', 'data/test1/8975.jpg', 'data/test1/8976.jpg']
Python: sorted() 函数相关推荐
- Python sorted() 函数
描述 sorted() 函数对所有可迭代的对象进行排序操作. sort 与 sorted 区别: sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作. list ...
- python sorted函数_Python 经典面试题 二
1.简要描述Python的垃圾回收机制(garbage collection) Python中的垃圾回收是以引用计数为主,标记-清除和分代收集为辅. •引用计数:Python在内存中存储每个对象的引用 ...
- python向函数传递列表,【Python】向函数传递列表
向函数传递列表 在实际使用中你会发现,向函数传递列表是比较实用的,这种列表可能包含名字.数字.可能更复杂的对象(字典) 假设向一个函数传递一堆水果,我们说出我们喜欢所有的水果 def Obj(frui ...
- Python sorted() 函数
sorted 函数是 Python 中的内置函数,作用是对所有可迭代的对象进行排序. sort 与 sorted 区别: sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进 ...
- python中sorted函数逆序_Python中sorted函数的用法(转)
[Python] sorted函数 我们需要对List.Dict进行排序,Python提供了两个方法 对给定的List L进行排序, 方法1.用List的成员函数sort进行排序,在本地进行排序,不返 ...
- python内置函数sorted(x)的作用是_Python内置filter与sorted函数
Python内部提供了序列过滤函数 filter . 接收参数为 一个函数以及一个序列.函数依次作用于序列中的每一个元素,并根据返回值是True 或者 False 判断是否删除该元素. 样例如下 # ...
- sort函数pythonreverse_Python基础 7 ---- Python内置sort和sorted函数
1 Python对数据的排序有两种方法,一种是容器内置的sort函数,另外一种利用sorted函数 2 对于sort函数我们不再进行讨论,只要研究一下sorted函数 3 sorted函数的原形sor ...
- python 排序函数 sort sorted 简介
sort() 是Python列表的一个内置的排序方法,list.sort() 方法排序时直接修改原列表,返回None: sort() 是Python内置的一个排序函数,它会从一个迭代器返回一个排好序的 ...
- python sorted key=str.lower_Python——sorted()函数
sorted()函数 1. python内置的sorted()函数可以对 list 进行排序 >>> sorted([12,1,3,34,-4]) [-4, 1, 3, 12, 3 ...
- Python中的sorted函数以及operator.itemgetter函数
from:Python中的sorted函数以及operator.itemgetter函数 operator.itemgetter函数 operator模块提供的itemgetter函数用于获取对象的哪 ...
最新文章
- 代码整理工具_程序员软件:程序员有哪些常用又好用的编码小工具?
- [保护模式]PAE模式
- 高盛5年来首次看好中国互联网利润
- 软件著作权 开源框架_开源软件分享-基于.net core 3.1的快速开发框架
- OpenCV ChArUco角的检测
- 怎么让SVN日志显示作者和日期等信息?
- Ubuntu dpkg 常用命令教程
- opencv 重用代码块记录
- 平面三角形外接圆圆心与半径求解算法
- 电脑迷你世界,迷你世界电脑版
- MyExcel 2.1.4 版本发布,多项功能增强
- 云服务器 共享文件,云服务器 共享文件
- 微博,要再造一个“微博”?
- java技术栈是什么意思?一次认全9大主流技术栈!
- 罗马数字和阿拉伯数字之间的转换
- Linux系统安装rpm文件:error: can‘t create transaction lock on /var/lib/rpm/.rpm.lock
- CogResultsAnalysisTool工具
- 利用计算机实现音乐节拍的实时自动跟踪,基于自适应白化音乐节拍实时跟踪算法.doc...
- 服务器阵列卡安装win7系统,乐扩阵列卡IO-PCE9230-4IR组阵列方法和windows7系统安装到阵列组详细讲解(附视频) - 常见问题 - 技术支持 - 乐扩...
- 爬虫用户要如何选择代理ip提供商?
热门文章
- django之路由分组,路由分发,FBV,CBV,ORM框架
- 书评 – 程序员经典读物(2)
- Import declarations are not supported by current JavaScript version
- EF中创建、使用Oracle数据库的Sequence(序列)功能
- win10 + VS2015 + EF6 + MySQL
- 《大道至简》阅读笔记02
- CSS挂马及相应防范方法
- 添加 code snippets (转)
- 【Python】python学习笔记day1
- elasticsearch查询操作(使用marvel插件)