对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 装饰器功能以及函数参数使用介绍
Jan 27 Python
深入理解Django的中间件middleware
Mar 14 Python
python实现可视化动态CPU性能监控
Jun 21 Python
Pandas之Fillna填充缺失数据的方法
Jun 25 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
Oct 24 Python
解决pandas展示数据输出时列名不能对齐的问题
Nov 18 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
Jan 23 Python
python给视频添加背景音乐并改变音量的具体方法
Jul 19 Python
anaconda3安装及jupyter环境配置全教程
Aug 24 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
Feb 05 Python
pytorch显存一直变大的解决方案
Apr 08 Python
用Python远程登陆服务器的步骤
Apr 16 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
php5.3 废弃函数小结
2010/05/16 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
2013/08/07 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
2015/05/11 PHP
php无限分类使用concat如何实现
2015/11/05 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
2018/04/27 PHP
PHP获取星期几的常用方法小结
2018/12/18 PHP
PHP中“=&gt;
2019/03/01 PHP
laravel 框架实现无限级分类的方法示例
2019/10/31 PHP
JavaScript Cookie显示用户上次访问的时间和次数
2009/12/08 Javascript
Javascript中的window.event.keyCode使用介绍
2011/04/26 Javascript
对setInterval在火狐和chrome切换标签产生奇怪的效果之探索,与解决方案!
2011/10/29 Javascript
js/jQuery简单实现选项卡功能
2014/01/02 Javascript
jquery实现点击文字可编辑并修改保存至数据库
2014/04/15 Javascript
js闭包引起的事件注册问题介绍
2016/03/29 Javascript
getElementById().innerHTML与getElementById().value的区别
2016/10/27 Javascript
Ionic + Angular.js实现图片轮播的方法示例
2017/05/21 Javascript
vue.js实例对象+组件树的详细介绍
2017/10/20 Javascript
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
微信小程序自定义轮播图
2018/11/04 Javascript
详解vue-video-player使用心得(兼容m3u8)
2019/08/23 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
vue v-model的用法解析
2020/10/19 Javascript
Python字符串、元组、列表、字典互相转换的方法
2016/01/23 Python
Python计算字符宽度的方法
2016/06/14 Python
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
python将txt文档每行内容循环插入数据库的方法
2018/12/28 Python
Python高级特性——详解多维数组切片(Slice)
2019/11/26 Python
通过实例解析python描述符原理作用
2020/01/22 Python
pandas apply多线程实现代码
2020/08/17 Python
继承公证书
2014/04/09 职场文书
《得道多助,失道寡助》教学反思
2014/04/19 职场文书
厕所文明标语
2014/06/11 职场文书
2014班子成员自我剖析材料思想汇报
2014/10/01 职场文书
城南旧事电影观后感
2015/06/16 职场文书
高二语文教学反思
2016/02/16 职场文书
经典哲理警句:志不真则心不热,心不热则功不贤
2019/11/14 职场文书