对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 相关文章推荐
Python2中的raw_input() 与 input()
Jun 12 Python
python实现实时监控文件的方法
Aug 26 Python
机器学习经典算法-logistic回归代码详解
Dec 22 Python
python 机器学习之支持向量机非线性回归SVR模型
Jun 26 Python
详解Python修复遥感影像条带的两种方式
Feb 23 Python
python 线性回归分析模型检验标准--拟合优度详解
Feb 24 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
Apr 19 Python
Python实现转换图片背景颜色代码
Apr 30 Python
如何在VSCode下使用Jupyter的教程详解
Jul 13 Python
详解Python流程控制语句
Oct 28 Python
利用python制作拼图小游戏的全过程
Dec 04 Python
Python并发编程实例教程之线程的玩法
Jun 20 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
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
PHP获取当前所在目录位置的方法
2014/11/26 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
Yii2框架类自动加载机制实例分析
2018/05/02 PHP
php中file_get_contents()函数用法实例
2019/02/21 PHP
Laravel5.1框架路由分组用法实例分析
2020/01/04 PHP
如何在一个页面显示多个百度地图
2013/04/07 Javascript
Jquery操作下拉框(DropDownList)实现取值赋值
2013/08/13 Javascript
完美兼容多浏览器的js判断图片路径代码汇总
2015/04/17 Javascript
JS+CSS实现的蓝色table选项卡效果
2015/10/08 Javascript
关于JavaScript数组你所不知道的3件事
2016/08/24 Javascript
JavaScript中${pageContext.request.contextPath}取值问题及解决方案
2016/12/08 Javascript
JavaScript自定义浏览器滚动条兼容IE、 火狐和chrome
2017/01/05 Javascript
微信小程序 MD5加密登录密码详解及实例代码
2017/01/12 Javascript
Node.js利用debug模块打印出调试日志的方法
2017/04/25 Javascript
图解NodeJS实现登录注册功能
2019/09/16 NodeJs
Vue仿百度搜索功能
2020/12/28 Vue.js
解析Python中的变量、引用、拷贝和作用域的问题
2015/04/07 Python
Python算法之求n个节点不同二叉树个数
2017/10/27 Python
纯python实现机器学习之kNN算法示例
2018/03/01 Python
对Python中type打开文件的方式介绍
2018/04/28 Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
2018/11/14 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
Django如何将URL映射到视图
2019/07/29 Python
基于Python和PyYAML读取yaml配置文件数据
2020/01/13 Python
聊聊python在linux下与windows下导入模块的区别说明
2021/03/03 Python
HTML5 video视频字幕的使用和制作方法
2018/05/03 HTML / CSS
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
prAna官网:瑜伽、旅行和冒险服装
2019/03/10 全球购物
Bonprix法国:时尚、鞋子、家居
2020/12/29 全球购物
学生实习自我鉴定
2013/10/11 职场文书
纪检监察建议书
2014/05/19 职场文书
学校校庆演讲稿
2014/05/22 职场文书
传承焦裕禄精神思想汇报2014
2014/09/10 职场文书
就业导师推荐信范文
2015/03/27 职场文书
十大冰系宝可梦排名,颜值最高的阿罗拉九尾,第三使用率第一
2022/03/18 日漫