对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 网络编程起步(Socket发送消息)
Sep 06 Python
跟老齐学Python之关于循环的小伎俩
Oct 02 Python
Python正规则表达式学习指南
Aug 02 Python
python中的decorator的作用详解
Jul 26 Python
对python自动生成接口测试的示例讲解
Nov 30 Python
python笔记之mean()函数实现求取均值的功能代码
Jul 05 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
Aug 12 Python
详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)
Nov 11 Python
python实现串口通信的示例代码
Feb 10 Python
Django 多对多字段的更新和插入数据实例
Mar 31 Python
使用tensorflow进行音乐类型的分类
Aug 14 Python
python爬虫今日热榜数据到txt文件的源码
Feb 23 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
Smarty结合Ajax实现无刷新留言本实例
2007/01/02 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
2014/04/10 PHP
php时间戳格式化显示友好的时间函数分享
2014/10/21 PHP
项目中应用Redis+Php的场景
2016/05/22 PHP
php倒计时出现-0情况的解决方法
2016/07/28 PHP
jquery $.ajax()取xml数据的小问题解决方法
2010/11/20 Javascript
JS 屏蔽按键效果与改变按键效果的示例代码
2013/12/24 Javascript
jQuery实现的网页竖向菜单效果代码
2015/08/26 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
2015/12/01 Javascript
浏览器兼容的JS写法总结
2016/04/27 Javascript
AngularJS 服务详细讲解及示例代码
2016/08/17 Javascript
详解用node编写自己的cli工具
2017/05/23 Javascript
Vue编写多地区选择组件
2017/08/21 Javascript
Js利用prototype自定义数组方法示例
2017/10/20 Javascript
浅谈让你的代码更简短,更整洁,更易读的ES6小技巧
2018/10/25 Javascript
浅析Angular 实现一个repeat指令的方法
2019/07/21 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
2019/10/28 Javascript
Node.js开发之套接字(socket)编程入门示例
2019/11/05 Javascript
vue引用外部JS的两种种方法
2020/01/28 Javascript
javascript全局自定义鼠标右键菜单
2020/12/08 Javascript
[01:58]DOTA2上海特级锦标赛现场采访:RTZ这个ID到底好不好
2016/03/25 DOTA
Anaconda下安装mysql-python的包实例
2018/06/11 Python
Flask-Mail用法实例分析
2018/07/21 Python
python3+opencv3识别图片中的物体并截取的方法
2018/12/05 Python
python对列进行平移变换的方法(shift)
2019/01/10 Python
torch 中各种图像格式转换的实现方法
2019/12/26 Python
植村秀美国官网:Shu Uemura美国
2019/03/19 全球购物
个人简历自荐信
2013/12/05 职场文书
水电站项目建议书
2014/05/12 职场文书
党员廉洁自律承诺书
2014/05/26 职场文书
2014向国旗敬礼网上签名活动总结
2014/09/27 职场文书
2014年党务公开工作总结
2014/12/09 职场文书
电台广播稿范文
2015/08/19 职场文书
MySQL索引是啥?不懂就问
2021/07/21 MySQL
Spring Data JPA框架持久化存储数据到数据库
2022/04/28 Java/Android
Python绘制散点图之可视化神器pyecharts
2022/07/07 Python