对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装饰器与递归算法详解
Feb 18 Python
教你用python3根据关键词爬取百度百科的内容
Aug 18 Python
Python IDLE入门简介
Dec 08 Python
python之从文件读取数据到list的实例讲解
Apr 19 Python
python爬虫自动创建文件夹的功能
Aug 01 Python
Python中的支持向量机SVM的使用(附实例代码)
Jun 26 Python
Python缓存技术实现过程详解
Sep 25 Python
Python xlrd excel文件操作代码实例
Mar 10 Python
Python pandas如何向excel添加数据
May 22 Python
python3判断IP地址的方法
Mar 04 Python
Python经常使用的一些内置函数
Apr 11 Python
python中filter,map,reduce的作用
Jun 10 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
Yii框架上传图片用法总结
2016/03/28 PHP
php中的抽象方法和抽象类
2017/02/14 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
2017/03/19 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
2019/05/06 PHP
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
2009/12/09 Javascript
Javascript笔记一 js以及json基础使用说明
2010/05/22 Javascript
js二维数组排序的简单示例代码
2014/01/24 Javascript
jQuery插件datepicker 日期连续选择
2015/06/12 Javascript
jquery UI Datepicker时间控件的使用方法(基础版)
2015/11/07 Javascript
js 截取或者替换字符串中的数字实现方法
2016/06/13 Javascript
基于JavaScript实现购物车功能
2017/02/07 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
详解node Async/Await 更好的异步编程解决方案
2018/05/10 Javascript
Vue.js 中制作自定义选择组件的代码附演示demo
2020/02/28 Javascript
浅谈JSON5解决了JSON的两大痛点
2020/12/14 Javascript
js删除对象中的某一个字段的方法实现
2021/01/11 Javascript
[01:38]DOTA2辉夜杯 欢乐的观众现场采访
2015/12/26 DOTA
[44:22]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第一场 11.01
2020/11/02 DOTA
浅谈Python数据类型之间的转换
2016/06/08 Python
Python模拟三级菜单效果
2017/09/11 Python
python实现随机森林random forest的原理及方法
2017/12/21 Python
python特性语法之遍历、公共方法、引用
2018/08/08 Python
Django中ORM外键和表的关系详解
2019/05/20 Python
一文轻松掌握python语言命名规范规则
2020/06/18 Python
一文彻底解决HTML5页面中长按保存图片功能
2019/06/10 HTML / CSS
Myprotein台湾官方网站:全球领先的运动营养品牌
2018/12/10 全球购物
Gibson London官网:以地道的英国男装而著称
2019/12/06 全球购物
荣耀俄罗斯官网:HONOR俄罗斯
2020/10/31 全球购物
瑞典在互联网上最大的宠物商店:Animail
2020/10/31 全球购物
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
2015/03/25 面试题
市场营销专业个人自荐信格式
2013/09/21 职场文书
党员批评与自我批评范文
2014/09/23 职场文书
审计局班子四风对照检查材料思想汇报
2014/10/07 职场文书
2014年度思想工作总结
2014/11/27 职场文书
运动员代表致辞
2015/07/29 职场文书
文明上网主题班会
2015/08/14 职场文书