对python3 sort sorted 函数的应用详解


Posted in Python onJune 27, 2019

python3 sorted取消了对cmp的支持。

python3 帮助文档:

sorted(iterable,key=None,reverse=False)

key接受一个函数,这个函数只接受一个元素,默认为None

reverse是一个布尔值。如果设置为True,列表元素将被倒序排列,默认为False

着重介绍key的作用原理:

key指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None 。

例1:

students = [('john', 'A', 15), ('jane', 'B', 12), ('dave','B', 10)]

sorted(students,key=lambda s: x[2]) #按照年龄来排序

结果:[('dave','B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

例2:这是一个字符串排序,排序规则:小写<大写<奇数<偶数

s = 'asdf234GDSdsf23' #排序:小写-大写-奇数-偶数

print("".join(sorted(s, key=lambda x: (x.isdigit(),x.isdigit() and int(x) % 2 == 0,x.isupper(),x))))

原理:先比较元组的第一个值,FALSE<TRUE,如果相等就比较元组的下一个值,以此类推。

先看一下Boolean value 的排序:

print(sorted([True,Flase]))===>结果[False,True]

Boolean 的排序会将 False 排在前,True排在后 .

1.x.isdigit()的作用是把数字放在前边,字母放在后边.

2.x.isdigit() and int(x) % 2 == 0的作用是保证奇数在前,偶数在后。

3.x.isupper()的作用是在前面基础上,保证字母小写在前大写在后.

4.最后的x表示在前面基础上,对所有类别数字或字母排序。

最后结果:addffssDGS33224

例3:一到面试题:

list1=[7, -8, 5, 4, 0, -2, -5]

#要求1.正数在前负数在后 2.整数从小到大 3.负数从大到小

sorted(list1,key=lambda x:(x<0,abs(x)))

解题思路:先按照正负排先后,再按照大小排先后。

以上这篇对python3 sort sorted 函数的应用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python selenium文件上传方法汇总
Nov 19 Python
Python迭代和迭代器详解
Nov 10 Python
Python字典数据对象拆分的简单实现方法
Dec 05 Python
pandas 将list切分后存入DataFrame中的实例
Jul 03 Python
python使用装饰器作日志处理的方法
Jul 11 Python
pyinstaller打包opencv和numpy程序运行错误解决
Aug 16 Python
django实现支付宝支付实例讲解
Oct 17 Python
pytorch中的上采样以及各种反操作,求逆操作详解
Jan 03 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
Apr 01 Python
python保留格式汇总各部门excel内容的实现思路
Jun 01 Python
Tensorflow全局设置可见GPU编号操作
Jun 30 Python
浅谈python数据类型及其操作
May 25 Python
python 批量解压压缩文件的实例代码
Jun 27 #Python
python opencv 图像拼接的实现方法
Jun 27 #Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
Jun 27 #Python
Pandas中Series和DataFrame的索引实现
Jun 27 #Python
Python中使用双下划线防止类属性被覆盖问题
Jun 27 #Python
PyTorch的深度学习入门教程之构建神经网络
Jun 27 #Python
PyTorch的深度学习入门之PyTorch安装和配置
Jun 27 #Python
You might like
php中长文章分页显示实现代码
2012/09/29 PHP
ThinkPHP3.1新特性之G方法的使用
2014/06/19 PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
2014/08/19 PHP
php操作xml入门之xml标签的属性分析
2015/01/23 PHP
javascript入门基础之私有变量
2010/02/23 Javascript
修改file按钮的默认样式实现代码
2013/04/23 Javascript
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
js控制容器隐藏出现防止样式变化的两种方法
2014/04/25 Javascript
JavaScript中的闭包(Closure)详细介绍
2014/12/30 Javascript
Document.body.scrollTop的值总为零的快速解决办法
2016/06/09 Javascript
JavaScript中闭包之浅析解读(必看篇)
2016/08/25 Javascript
AngularJs Managing Service Dependencies详解
2016/09/02 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
使用vuex的state状态对象的5种方式
2018/04/19 Javascript
JS中实现浅拷贝和深拷贝的代码详解
2019/06/05 Javascript
vue项目中监听手机物理返回键的实现
2020/01/18 Javascript
[41:08]2014 DOTA2国际邀请赛中国区预选赛 HGT VS NE
2014/05/22 DOTA
[35:26]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第三局
2016/02/26 DOTA
仅利用30行Python代码来展示X算法
2015/04/01 Python
九步学会Python装饰器
2015/05/09 Python
详解Python中 __get__和__getattr__和__getattribute__的区别
2016/06/16 Python
python获取外网IP并发邮件的实现方法
2017/10/01 Python
Python3实现转换Image图片格式
2018/06/21 Python
使用 Python 清理收藏夹里已失效的网站
2019/12/03 Python
解决TensorFlow模型恢复报错的问题
2020/02/06 Python
python实现斗地主分牌洗牌
2020/06/22 Python
采用专利算法搜索最廉价的机票:CheapAir
2016/09/10 全球购物
物流仓储实习自我鉴定
2013/09/25 职场文书
室内设计实习自我鉴定
2013/09/25 职场文书
汽车运用工程专业求职信
2014/06/18 职场文书
民事和解协议书格式
2014/11/29 职场文书
四年级小学生评语
2014/12/26 职场文书
三十年同学聚会致辞
2015/07/28 职场文书
2016年寒假生活小结
2015/10/10 职场文书
python opencv人脸识别考勤系统的完整源码
2021/04/26 Python
SQL注入详解及防范方法
2021/12/06 MySQL