对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 相关文章推荐
win7安装python生成随机数代码分享
Dec 27 Python
Django中使用group_by的方法
May 26 Python
python3批量删除豆瓣分组下的好友的实现代码
Jun 07 Python
Python在信息学竞赛中的运用及Python的基本用法(详解)
Aug 15 Python
Django中redis的使用方法(包括安装、配置、启动)
Feb 21 Python
Python 中导入csv数据的三种方法
Nov 01 Python
python实现石头剪刀布程序
Jan 20 Python
python opencv 二值化 计算白色像素点的实例
Jul 03 Python
新手如何发布Python项目开源包过程详解
Jul 11 Python
Django 响应数据response的返回源码详解
Aug 06 Python
python编写计算器功能
Oct 25 Python
python实现ping命令小程序
Dec 28 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设置页面超时时间解决方法
2015/09/22 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
PHP测试框架PHPUnit组织测试操作示例
2018/05/28 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
2019/10/24 PHP
js中判断对象是否为空的三种实现方法
2013/12/23 Javascript
Javascript 函数parseInt()转换时出现bug问题
2014/05/20 Javascript
node.js中的fs.fchmodSync方法使用说明
2014/12/16 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
2015/06/05 Javascript
Bootstrap每天必学之缩略图与警示窗
2015/11/29 Javascript
ES6的新特性概览
2016/03/10 Javascript
Markdown+Bootstrap图片自适应属性详解
2016/05/21 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
JavaScript中transform实现数字翻页效果
2017/03/08 Javascript
Vue.js实战之组件的进阶
2017/04/04 Javascript
Node.js调用fs.renameSync报错(Error: EXDEV, cross-device link not permitted)
2017/12/27 Javascript
vue2.0之多页面的开发的示例
2018/01/30 Javascript
nodejs使用redis作为缓存介质实现的封装缓存类示例
2018/02/07 NodeJs
用Vue写一个分页器的示例代码
2018/04/22 Javascript
vue watch普通监听和深度监听实例详解(数组和对象)
2018/08/16 Javascript
vue 实现超长文本截取,悬浮框提示
2020/07/29 Javascript
JavaScript 异步时序问题
2020/11/20 Javascript
在Python程序中实现分布式进程的教程
2015/04/28 Python
解决python升级引起的pip执行错误的问题
2018/06/12 Python
对python自动生成接口测试的示例讲解
2018/11/30 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
解决Python3 抓取微信账单信息问题
2019/07/19 Python
解析PyCharm Python运行权限问题
2020/01/08 Python
Python基于正则表达式实现计算器功能
2020/07/13 Python
python 爬虫之selenium可视化爬虫的实现
2020/12/04 Python
Python爬虫逆向分析某云音乐加密参数的实例分析
2020/12/04 Python
中国医药集团国药在线:国药网
2017/02/06 全球购物
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
2014年妇联工作总结
2014/11/21 职场文书
惊涛骇浪观后感
2015/06/05 职场文书
MySQL表锁、行锁、排它锁及共享锁的使用详解
2022/04/02 MySQL