对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 相关文章推荐
在Python3中使用asyncio库进行快速数据抓取的教程
Apr 02 Python
深入解析Python中的上下文管理器
Jun 28 Python
Swift中的协议(protocol)学习教程
Jul 08 Python
Python爬取qq music中的音乐url及批量下载
Mar 23 Python
非递归的输出1-N的全排列实例(推荐)
Apr 11 Python
Python数据结构之栈、队列的实现代码分享
Dec 04 Python
python读取与写入csv格式文件的示例代码
Dec 16 Python
python中的随机函数random的用法示例
Jan 27 Python
python中多个装饰器的执行顺序详解
Oct 08 Python
Python 共享变量加锁、释放详解
Aug 28 Python
python变量的作用域是什么
May 26 Python
Python实现微信表情包炸群功能
Jan 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
纯真IP数据库的应用 IP地址转化成十进制
2009/06/14 PHP
php 格式化数字的时候注意数字的范围
2010/04/13 PHP
php文件上传、下载和删除示例
2020/08/28 PHP
PHP读取文件的常见几种方法
2016/11/03 PHP
thinkPHP框架中layer.js的封装与使用方法示例
2019/01/18 PHP
Jquery 高亮显示文本中重要的关键字
2009/12/24 Javascript
通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
2013/07/13 Javascript
使用jQuery获得内容以及内容的属性
2015/02/26 Javascript
jQuery实现手机号码输入提示功能实例
2015/04/30 Javascript
JS基于FileSystemObject创建一个指定路径的TXT文本文件
2015/08/05 Javascript
详解javascript函数的参数
2015/11/10 Javascript
jQuery+pjax简单示例汇总
2017/04/21 jQuery
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
解决iView中时间控件选择的时间总是少一天的问题
2018/03/15 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
2018/09/19 Javascript
JavaScript生成随机验证码代码实例
2019/09/28 Javascript
vue+导航锚点联动-滚动监听和点击平滑滚动跳转实例
2019/11/13 Javascript
vue quill editor 使用富文本添加上传音频功能
2020/01/14 Javascript
[12:29]2018国际邀请赛 开幕秀
2018/08/22 DOTA
Python学习之asyncore模块用法实例教程
2014/09/29 Python
Python实现保证只能运行一个脚本实例
2015/06/24 Python
Python学习教程之常用的内置函数大全
2017/07/14 Python
NLTK 3.2.4 环境搭建教程
2018/09/19 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
2019/06/21 Python
python 字典操作提取key,value的方法
2019/06/26 Python
python中sort和sorted排序的实例方法
2019/08/26 Python
关于Python3 lambda函数的深入浅出
2019/11/27 Python
python 实现二维列表转置
2019/12/02 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
2020/01/10 Python
python中如何写类
2020/06/29 Python
自动化专业个人求职信范文
2013/12/30 职场文书
酒店管理毕业生自荐信
2014/05/25 职场文书
2014年征兵标语
2014/06/20 职场文书
“四风”问题整改措施和努力方向
2014/09/20 职场文书
群众路线教育实践活动整改落实情况汇报
2014/10/28 职场文书
致男子1500米运动员的广播稿
2019/11/08 职场文书