对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引用DLL文件的方法
May 11 Python
python实现文本去重且不打乱原本顺序
Jan 26 Python
浅谈编码,解码,乱码的问题
Dec 30 Python
Python实现的文本简单可逆加密算法示例
May 18 Python
Pandas 数据处理,数据清洗详解
Jul 10 Python
python+Splinter实现12306抢票功能
Sep 25 Python
浅谈python脚本设置运行参数的方法
Dec 03 Python
详解用python写网络爬虫-爬取新浪微博评论
May 10 Python
django组合搜索实现过程详解(附代码)
Aug 06 Python
解决keras使用cov1D函数的输入问题
Jun 29 Python
解决Jupyter-notebook不弹出默认浏览器的问题
Mar 30 Python
Python图像处理库PIL详细使用说明
Apr 06 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开发中的安全防范知识详解
2013/06/06 PHP
PHP中substr()与explode()函数用法分析
2014/11/24 PHP
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
PHP分页显示的方法分析【附PHP通用分页类】
2018/05/10 PHP
document.forms用法示例介绍
2014/06/26 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
2014/08/27 Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
2014/12/17 Javascript
JavaScript函数作用域链分析
2015/02/13 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
根据user-agent判断蜘蛛代码黑帽跳转代码(js版与php版本)
2015/09/14 Javascript
ECMAScript6快速入手攻略
2016/07/18 Javascript
Servlet实现文件上传,可多文件上传示例
2016/12/05 Javascript
解析jquery easyui tree异步加载子节点问题
2017/03/08 Javascript
ES6扩展运算符的用途实例详解
2017/08/20 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
基于Koa2写个脚手架模拟接口服务的方法
2018/11/27 Javascript
浅谈vue限制文本框输入数字的正确姿势
2019/09/02 Javascript
微信小程序实现下拉加载更多商品
2020/12/29 Javascript
[28:28]Ti4 冒泡赛第二天NEWBEE vs NaVi 2
2014/07/15 DOTA
[13:56]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第一场
2018/04/06 DOTA
Linux下使用python自动修改本机网关代码分享
2015/05/21 Python
详细分析python3的reduce函数
2017/12/05 Python
通过python+selenium3实现浏览器刷简书文章阅读量
2017/12/26 Python
Python3中列表list合并的四种方法
2019/04/19 Python
利用Tensorflow的队列多线程读取数据方式
2020/02/05 Python
浅谈图像处理中掩膜(mask)的意义
2020/02/19 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
2020/10/15 Python
HTML5 WebSocket实现点对点聊天的示例代码
2018/01/31 HTML / CSS
英国度假别墅预订:Sykes Cottages
2017/06/12 全球购物
试用期员工考核制度
2014/01/22 职场文书
家长对老师的感言
2014/03/11 职场文书
调研座谈会发言材料
2014/08/23 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
《生物入侵者》教学反思
2016/02/16 职场文书
导游词之青岛太清宫
2019/12/13 职场文书
python manim实现排序算法动画示例
2022/08/14 Python