对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之让人欢喜让人忧的迭代
Oct 02 Python
简介Django中内置的一些中间件
Jul 24 Python
浅谈Python 的枚举 Enum
Jun 12 Python
Python分治法定义与应用实例详解
Jul 28 Python
Python单例模式的两种实现方法
Aug 14 Python
Python scipy的二维图像卷积运算与图像模糊处理操作示例
Sep 06 Python
Python自动采集微信联系人的实现示例
Feb 28 Python
在python3中实现查找数组中最接近与某值的元素操作
Feb 29 Python
python要安装在哪个盘
Jun 15 Python
如何解决pycharm调试报错的问题
Aug 06 Python
python中K-means算法基础知识点
Jan 25 Python
解决Pytorch修改预训练模型时遇到key不匹配的情况
Jun 05 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函数
2008/10/03 PHP
php + WebUploader实现图片批量上传功能
2019/05/06 PHP
用JavaScript编写COM组件的步骤
2009/03/17 Javascript
使用js 设置url参数
2013/07/08 Javascript
jquery常用特效方法使用示例
2014/04/25 Javascript
JS字符串false转boolean的方法(推荐)
2017/03/08 Javascript
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
微信小程序实现滴滴导航tab切换效果
2018/07/24 Javascript
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
2019/06/27 Javascript
JS async 函数的含义和用法实例总结
2020/04/08 Javascript
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
JS中多层次排序算法的实现代码
2021/01/06 Javascript
python使用htmllib分析网页内容的方法
2015/05/08 Python
python删除列表内容
2015/08/04 Python
Java分治归并排序算法实例详解
2017/12/12 Python
实用自动化运维Python脚本分享
2018/06/04 Python
浅谈Python编程中3个常用的数据结构和算法
2019/04/30 Python
django 快速启动数据库客户端程序的方法示例
2019/08/16 Python
使用python实现多维数据降维操作
2020/02/24 Python
Python如何存储数据到json文件
2020/03/09 Python
Python如何绘制日历图和热力图
2020/08/07 Python
使用css3绘制出各种几何图形
2016/08/17 HTML / CSS
推荐10个CSS3 制作的创意下拉菜单效果
2014/02/11 HTML / CSS
CSS 说明横向进度条最后显示文字的实现代码
2020/11/10 HTML / CSS
Ray-Ban雷朋西班牙官网:全球领先的太阳眼镜品牌
2018/11/28 全球购物
美国饼干礼物和美食甜点购买网站:Cheryl’s
2020/05/28 全球购物
初中数学教学反思
2014/01/16 职场文书
中学生自我鉴定
2014/02/04 职场文书
运动会解说词200字
2014/02/06 职场文书
道路交通安全实施方案
2014/03/12 职场文书
网络编辑岗位职责
2014/03/18 职场文书
村级换届选举方案
2014/05/10 职场文书
幼儿园小班开学寄语
2015/05/27 职场文书
2015年乡镇食品安全工作总结
2015/10/22 职场文书
基层医务人员三严三实心得体会
2016/01/05 职场文书
在校大学生才艺比赛策划书怎么写?
2019/08/26 职场文书