对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自定义类并使用的方法
May 07 Python
实例Python处理XML文件的方法
Aug 31 Python
Python中str is not callable问题详解及解决办法
Feb 10 Python
浅谈function(函数)中的动态参数
Apr 30 Python
python中将字典形式的数据循环插入Excel
Jan 16 Python
python实现列表的排序方法分享
Jul 01 Python
Python字符串大小写转换拼接删除空白
Sep 19 Python
Python实现把类当做字典来访问
Dec 16 Python
Jupyter notebook无法导入第三方模块的解决方式
Apr 15 Python
python seaborn heatmap可视化相关性矩阵实例
Jun 03 Python
pandas抽取行列数据的几种方法
Dec 13 Python
浅谈盘点5种基于Python生成的个性化语音方法
Feb 05 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中获取远程客户端的真实ip地址的方法
2011/08/03 PHP
Django 标签筛选的实现代码(一对多、多对多)
2018/09/05 PHP
PHP实现发送微博消息功能完整示例
2019/12/04 PHP
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
jQuery操作Select选择的Text和Value(获取/设置/添加/删除)
2013/03/06 Javascript
一个JavaScript的求爱小特效
2014/05/09 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
2014/06/02 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
2014/09/24 Javascript
详解Angular.js指令中scope类型的几种特殊情况
2017/02/21 Javascript
js常用的继承--组合式继承
2017/03/06 Javascript
深入nodejs中流(stream)的理解
2017/03/27 NodeJs
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
javaScript和jQuery自动加载简单代码实现方法
2017/11/24 jQuery
Node.js中,在cmd界面,进入退出Node.js运行环境的方法
2018/05/12 Javascript
jQuery中实现text()的方法
2019/04/04 jQuery
[40:05]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第一局
2016/02/25 DOTA
初步介绍Python中的pydoc模块和distutils模块
2015/04/13 Python
将Emacs打造成强大的Python代码编辑工具
2015/11/20 Python
python 连接各类主流数据库的实例代码
2018/01/30 Python
python解决pandas处理缺失值为空字符串的问题
2018/04/08 Python
Python读取csv文件分隔符设置方法
2019/01/14 Python
Python-接口开发入门解析
2019/08/01 Python
详解python中的生成器、迭代器、闭包、装饰器
2019/08/22 Python
pandas之分组groupby()的使用整理与总结
2020/06/18 Python
细说NumPy数组的四种乘法的使用
2020/12/18 Python
JavaScript实现页面动态验证码的实现示例
2021/03/23 Javascript
八一建军节感言
2014/02/28 职场文书
学生评语集锦
2015/01/04 职场文书
思想道德自我评价2015
2015/03/09 职场文书
小学六一儿童节活动总结
2015/05/05 职场文书
党小组鉴定意见
2015/06/02 职场文书
2016党员入党决心书
2015/09/22 职场文书
职工的安全责任书范文!
2019/07/02 职场文书
导游词之广西漓江
2019/11/02 职场文书
golang判断key是否在map中的代码
2021/04/24 Golang
 Python 中 logging 模块使用详情
2022/03/03 Python