对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使用win32com在百度空间插入html元素示例
Feb 20 Python
python通过wxPython打开一个音频文件并播放的方法
Mar 25 Python
Python  pip安装lxml出错的问题解决办法
Feb 10 Python
windows 10 设定计划任务自动执行 python 脚本的方法
Sep 11 Python
Python3如何对urllib和urllib2进行重构
Nov 25 Python
python深copy和浅copy区别对比解析
Dec 26 Python
Python实现CNN的多通道输入实例
Jan 17 Python
python mongo 向数据中的数组类型新增数据操作
Dec 05 Python
如何利用Python matplotlib绘制雷达图
Dec 21 Python
python批量更改目录名/文件名的方法
Apr 18 Python
对Keras自带Loss Function的深入研究
May 25 Python
Python必备技巧之函数的使用详解
Apr 04 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简单实现查询数据库返回json数据
2015/04/16 PHP
laravel多条件查询方法(and,or嵌套查询)
2019/10/09 PHP
jquery蒙版控件实现代码
2010/12/08 Javascript
人人网javascript面试题 可以提前实现下
2012/01/05 Javascript
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
2013/06/27 Javascript
通过一段代码简单说js中的this的使用
2013/07/23 Javascript
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
js使用onmousemove和onmouseout获取鼠标坐标的方法
2015/03/31 Javascript
浅谈Javascript中substr和substring的区别
2015/09/30 Javascript
jQuery实现切换页面过渡动画效果
2015/10/29 Javascript
js编写的treeview使用方法
2016/11/11 Javascript
遍历js中对象的属性和值的实例
2016/11/21 Javascript
Bootstrap CSS布局之列表
2016/12/15 Javascript
vue深入解析之render function code详解
2017/07/18 Javascript
基于复选框demo(分享)
2017/09/27 Javascript
jQuery简单实现对数组去重及排序操作实例
2017/10/31 jQuery
vue实现前进刷新后退不刷新效果
2018/01/26 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2019/05/28 Javascript
JS实现简易计算器
2020/02/14 Javascript
JavaScript ECMA-262-3 深入解析(一):执行上下文实例分析
2020/04/25 Javascript
Vue 实例中使用$refs的注意事项
2021/01/29 Vue.js
python遍历数组的方法小结
2015/04/30 Python
对numpy 数组和矩阵的乘法的进一步理解
2018/04/04 Python
简单了解python 生成器 列表推导式 生成器表达式
2019/08/22 Python
python等差数列求和公式前 100 项的和实例
2020/02/25 Python
Python Selenium库的基本使用教程
2021/01/04 Python
html5中audio支持音频格式的解决方法
2018/08/24 HTML / CSS
巴西图书和电子产品购物网站:Saraiva
2017/06/07 全球购物
MaBelle玛贝尔香港官网:香港钻饰连锁店
2019/09/09 全球购物
暑期社会实践学生的自我评价
2014/01/09 职场文书
商场中秋节活动方案
2014/02/07 职场文书
道德模范先进事迹
2014/02/14 职场文书
施工安全标语
2014/06/07 职场文书
组织生活会表态发言材料
2014/10/17 职场文书
2015年大学教师工作总结
2015/05/20 职场文书
走近毛泽东观后感
2015/06/04 职场文书