从零开始的Python学习 知识补充sorted
2018-11-20 03:25:40来源:博客园 阅读 ()
sorted()方法
sorted()可用于任何一个可迭代对象。
原型为sorted(iterable, cmp=None, key=None, reverse=False)
iterable:一个可迭代对象;
cmp:用于比较的函数,比较什么由key决定;
key:用列表元素的某个属性或函数进行作为关键字,有默认值,迭代集合中的一项;
reverse:排序规则. reverse = True 降序 或者 reverse = False 升序,有默认值。
(1)cmp参数
cmp接受一个函数,如
def f(a,b)
return a-b
如果a逻辑小于b,函数返回负数;a等于b,函数返回0;a大于b,函数返回正数。
但是在python3中,cmp参数被淘汰了。但是可以使用key参数实现它的功能,本文后面会有介绍。
(2)key参数
参数key的使用通常配合lambda,这是一个隐函数,使用要按照固定格式:
例如可迭代对象的中的元素是一个元组:key = lambda x:x[0],意思按每一个元组的第0个元素排序。
当然如果可迭代对象中放的是字典,那填上它的键就可以按键对应的值进行排序。
例如:
order=[{'no':1,'age':18},{'no':3,'age':19},{'no':2,'age':20}] order = sorted(order,key=lambda x:x['no']) print(order) #输出[{'no': 1, 'age': 18}, {'no': 2, 'age': 20}, {'no': 3, 'age': 19}]
key中还可以使用函数
下面的例子是求按列表中元素与51的距离的大小排序。
order=[98,183,37,122,14,124,65,67] def f2(a): return abs(53-a) order = sorted(order,key=lambda x:f2(x)) print(order) #输出[65, 67, 37, 14, 98, 122, 124, 183]
(3)reverse参数
接受False 或者True 表示升序或降序。
True代表降序。
注意:sorted不会直接修改传进去的可迭代对象,需要用一个新的对象去存它return的结果。
result = sorted(list)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Python基础之模块
下一篇:flask调度任务
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash