对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的chardet库获得文件编码并修改编码
Jan 22 Python
用Python进行基础的函数式编程的教程
Mar 31 Python
Django返回json数据用法示例
Sep 18 Python
python搜索包的路径的实现方法
Jul 19 Python
python使用多线程编写tcp客户端程序
Sep 02 Python
python numpy数组复制使用实例解析
Jan 10 Python
pytorch实现特殊的Module--Sqeuential三种写法
Jan 15 Python
Python批量启动多线程代码实例
Feb 18 Python
基于python检查SSL证书到期情况代码实例
Apr 04 Python
Keras官方中文文档:性能评估Metrices详解
Jun 15 Python
python连接mongodb数据库操作数据示例
Nov 30 Python
Python基础之数据类型知识汇总
May 18 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
叫你如何修改Nginx与PHP的文件上传大小限制
2014/09/10 PHP
Symfony生成二维码的方法
2016/02/04 PHP
Zend Framework教程之Application用法实例详解
2016/03/14 PHP
PHP Ajax JavaScript Json获取天气信息实现代码
2016/08/17 PHP
PHP中引用类型和值类型功能与用法示例
2019/02/26 PHP
js查找父节点的简单方法
2008/06/28 Javascript
一个简单的JavaScript 日期计算算法
2009/09/11 Javascript
Javascript 实现的数独解题算法网页实例
2013/10/15 Javascript
JavaScript 异常处理 详解
2015/02/06 Javascript
javascript清空table表格的方法
2015/05/14 Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
2016/06/21 Javascript
JS框架之vue.js(深入三:组件1)
2016/09/29 Javascript
微信小程序 教程之注册程序
2016/10/17 Javascript
Angular.JS通过指令操作DOM的方法
2017/05/10 Javascript
基于Vue制作组织架构树组件
2017/12/06 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
在JavaScript中如何访问暂未存在的嵌套对象
2019/06/18 Javascript
Vue路由守卫之路由独享守卫
2019/09/25 Javascript
js实现滑动滑块验证登录
2020/07/24 Javascript
Webpack5正式发布,有哪些新特性
2020/10/12 Javascript
工作中常用js功能汇总
2020/11/07 Javascript
解决vant框架做H5时踩过的坑(下拉刷新、上拉加载等)
2020/11/11 Javascript
[49:56]VG vs Optic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python3实现的腾讯微博自动发帖小工具
2013/11/11 Python
python循环监控远程端口的方法
2015/03/14 Python
分享一个简单的python读写文件脚本
2017/11/25 Python
Python使用tkinter模块实现推箱子游戏
2019/10/08 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
2019/11/29 Python
python如何查看安装了的模块
2020/06/23 Python
使用django自带的user做外键的方法
2020/11/30 Python
学期个人工作总结
2015/02/13 职场文书
2015年个人招商工作总结
2015/04/25 职场文书
巴黎圣母院观后感
2015/06/10 职场文书
Golang 如何实现函数的任意类型传参
2021/04/29 Golang
Java各种比较对象的方式的对比总结
2021/06/20 Java/Android
JavaScript严格模式不支持八进制的问题讲解
2021/11/07 Javascript