对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通过字典dict判断指定键值是否存在的方法
Mar 21 Python
Python抓取淘宝下拉框关键词的方法
Jul 08 Python
Python爬取京东的商品分类与链接
Aug 26 Python
Python实现的双色球生成功能示例
Dec 18 Python
Python多层装饰器用法实例分析
Feb 09 Python
python爬虫面试宝典(常见问题)
Mar 02 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
Jun 18 Python
对DJango视图(views)和模版(templates)的使用详解
Jul 17 Python
python3安装crypto出错及解决方法
Jul 30 Python
浅谈django url请求与数据库连接池的共享问题
Aug 29 Python
python中bytes和str类型的区别
Oct 21 Python
浅谈哪个Python库才最适合做数据可视化
Jun 28 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去除字符串换行符示例分享
2014/02/13 PHP
php自定义apk安装包实例
2014/10/20 PHP
thinkphp3.2.2前后台公用类架构问题分析
2014/11/25 PHP
php冒泡排序与快速排序实例详解
2015/12/07 PHP
46 个非常有用的 PHP 代码片段
2016/02/16 PHP
PHP 根据key 给二维数组分组
2016/12/09 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
PHP使用标准库spl实现的观察者模式示例
2018/08/04 PHP
jQuery Div中加载其他页面的实现代码
2009/02/27 Javascript
Javascript 作用域使用说明
2009/08/13 Javascript
jquery 年会抽奖程序
2011/12/22 Javascript
JS实现模拟风力的雪花飘落效果
2015/05/13 Javascript
JavaScript实现省市联动过程中bug的解决方法
2017/12/04 Javascript
浅谈Vue组件及组件的注册方法
2018/08/24 Javascript
小程序实现列表多个批量倒计时
2021/01/29 Javascript
vue相同路由跳转强制刷新该路由组件操作
2020/08/05 Javascript
python定时采集摄像头图像上传ftp服务器功能实现
2013/12/23 Python
python中pandas.DataFrame排除特定行方法示例
2017/03/12 Python
python破解zip加密文件的方法
2018/05/31 Python
Tensorflow中使用tfrecord方式读取数据的方法
2018/06/19 Python
python实现的MySQL增删改查操作实例小结
2018/12/19 Python
python 读取dicom文件,生成info.txt和raw文件的方法
2019/01/24 Python
Python考拉兹猜想输出序列代码实践
2019/07/05 Python
Python秒算24点实现及原理详解
2019/07/29 Python
Python:slice与indices的用法
2019/11/25 Python
eDreams意大利:南欧领先的在线旅行社
2018/11/23 全球购物
巴西电子、家电、智能手机购物网站:Girafa
2019/06/04 全球购物
应届生会计电算化求职信
2013/10/03 职场文书
经典演讲稿范文
2013/12/30 职场文书
入党积极分子思想汇报
2014/01/02 职场文书
运动会开幕式解说词
2014/02/05 职场文书
公安学专业求职信
2014/07/27 职场文书
国际贸易系求职信
2014/08/09 职场文书
会计学习心得体会
2014/09/09 职场文书
委托公证书格式
2015/01/26 职场文书
Java实现房屋出租系统详解
2021/10/05 Java/Android