对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操作MySQL数据库的方法分享
May 29 Python
Windows下搭建python开发环境详细步骤
Jul 20 Python
在centos7中分布式部署pyspider
May 03 Python
Python smtplib实现发送邮件功能
May 22 Python
Python实现的NN神经网络算法完整示例
Jun 19 Python
Python抽象和自定义类定义与用法示例
Aug 23 Python
python 获取微信好友列表的方法(微信web)
Feb 21 Python
详解python校验SQL脚本命名规则
Mar 22 Python
TensorFlow命名空间和TensorBoard图节点实例
Jan 23 Python
在Python中用GDAL实现矢量对栅格的切割实例
Mar 11 Python
如何从csv文件构建Tensorflow的数据集
Sep 21 Python
python 对xml解析的示例
Feb 27 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
ThinkPHP关联模型操作实例分析
2012/09/23 PHP
根据中文裁减字符串函数的php代码
2013/12/03 PHP
PHP性能分析工具XHProf安装使用教程
2015/05/13 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
HTML中事件触发列表与解说
2007/07/09 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
Js 导出table内容到Excel的简单实例
2013/11/19 Javascript
jquery等待效果示例
2014/05/01 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
2014/10/17 Javascript
快速解决Canvas.toDataURL 图片跨域的问题
2016/05/10 Javascript
深入浅出讲解ES6的解构
2016/08/03 Javascript
JavaScript中apply方法的应用技巧小结
2016/09/29 Javascript
JS正则替换掉小括号及内容的方法
2016/11/29 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
详解javascript中的变量提升和函数提升
2018/05/24 Javascript
Nodejs对postgresql基本操作的封装方法
2019/02/20 NodeJs
js实现多张图片每隔一秒切换一张图片
2019/07/29 Javascript
python中正则表达式的使用详解
2014/10/17 Python
python查询mysql中文乱码问题
2014/11/09 Python
python 数据的清理行为实例详解
2017/07/12 Python
Django Form 实时从数据库中获取数据的操作方法
2019/07/25 Python
Python队列、进程间通信、线程案例
2019/10/25 Python
python模块hashlib(加密服务)知识点讲解
2019/11/25 Python
Python venv虚拟环境配置过程解析
2020/07/08 Python
聊聊python中的异常嵌套
2020/09/01 Python
浅谈css3中的前缀
2016/07/20 HTML / CSS
详解如何在css3打包后自动追加前缀插件:autoprefixer
2018/12/18 HTML / CSS
遗产继承公证书
2014/04/09 职场文书
关于爱国的演讲稿
2014/05/07 职场文书
授权委托书(公民个人适用)
2014/09/19 职场文书
党员剖析材料范文
2014/12/18 职场文书
音乐剧猫观后感
2015/06/04 职场文书
小学四年级作文之写景
2019/08/23 职场文书
详解GaussDB for MySQL性能优化
2021/05/18 MySQL
python_tkinter事件类型详情
2022/03/20 Python
类和原型的设计模式之复制与委托差异
2022/07/07 Javascript