详解python中sort排序使用


Posted in Python onMarch 23, 2019

1.前言

昨天一学妹问我一个关于python的问题,当时在外忙碌,没时间细看。今天看一下,咋一看我还真的不知道这个问题,bookinfo.sort(reverse=True ,key=lambda x:(x[1],x[1]/x[2]))是如何排序的。但是我猜测应该是按照第二个元素排序,如果第二个元素相同,就按照第二个元素和第三个元素的比值排序。猜测归猜测,自己就去测试了一下。过程如下。

2.环境准备

系统:win10

python版本:3.6

3.程序实现

为了满足实验要求,就设置几个第二个元素相同的数据如:摆渡人

bookinfo=[('不一样的卡梅拉(全套)',22.50,120),('零基础学Android',65.10,89.80),
     ('摆渡人',23.40,36.00),('福尔摩斯探案全集8册',22.50,128),('不一样的卡梅拉(全套)',22.50,100),('摆渡人',23.40,40.00)]
bookinfo.sort(key=lambda x:(x[1],x[1]/x[2]))  
for temp in bookinfo:
	print(temp,"x[1]/x[2]:",temp[1]/temp[2])

程序运行后的结果是:

('福尔摩斯探案全集8册', 22.5, 128) x[1]/x[2]: 0.17578125
('不一样的卡梅拉(全套)', 22.5, 120) x[1]/x[2]: 0.1875
('不一样的卡梅拉(全套)', 22.5, 100) x[1]/x[2]: 0.225
('摆渡人', 23.4, 40.0) x[1]/x[2]: 0.585
('摆渡人', 23.4, 36.0) x[1]/x[2]: 0.6499999999999999
('零基础学Android', 65.1, 89.8) x[1]/x[2]: 0.7249443207126949
[Finished in 0.2s]

 4.sort拓展

在使用sort函数的时候需要注意的是:该函数会修改原来的数组,不会返回新的数组。

如果想使用逆序则可以:bookinfo.sort(reverse=True,key=lambda x:(x[1],x[1]/x[2]))

key这个属性后的x是任意的,自定义的,代表当前的元素的内容。

以上所述是小编给大家介绍的python中sort排序使用详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python getopt模块处理命令行选项实例
May 13 Python
python处理csv数据的方法
Mar 11 Python
Python3通过Luhn算法快速验证信用卡卡号的方法
May 14 Python
Python Xml文件添加字节属性的方法
Mar 31 Python
PyCharm代码回滚,恢复历史版本的解决方法
Oct 22 Python
python使用 request 发送表单数据操作示例
Sep 25 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
Dec 03 Python
python二维键值数组生成转json的例子
Dec 06 Python
tensorflow没有output结点,存储成pb文件的例子
Jan 04 Python
tensorflow 分类损失函数使用小记
Feb 18 Python
快速解决jupyter notebook启动需要密码的问题
Apr 21 Python
python自动生成证件号的方法示例
Jan 14 Python
Python基础之函数的定义与使用示例
Mar 23 #Python
详解用Python练习画个美队盾牌
Mar 23 #Python
详解python中TCP协议中的粘包问题
Mar 22 #Python
Python JSON格式数据的提取和保存的实现
Mar 22 #Python
Python3.4解释器用法简单示例
Mar 22 #Python
Python常见数字运算操作实例小结
Mar 22 #Python
详解python校验SQL脚本命名规则
Mar 22 #Python
You might like
php实现插入排序
2015/03/29 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
2016/03/01 PHP
php简单解析mysqli查询结果的方法(2种方法)
2016/06/29 PHP
php微信公众号js-sdk开发应用
2016/11/28 PHP
JavaScript 异步调用框架 (Part 5 - 链式实现)
2009/08/04 Javascript
javascript 数据类型转换(parseInt,parseFloat)
2010/07/20 Javascript
JavaScript数组各种常见用法实例分析
2015/08/04 Javascript
javascript 动态修改css样式方法汇总(四种方法)
2015/08/27 Javascript
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
jQuery动态增减行的实例代码解析(推荐)
2016/12/05 Javascript
原生js开发的日历插件
2017/02/04 Javascript
基于JavaScript实现活动倒计时效果
2017/04/20 Javascript
详解angularjs中如何实现控制器和指令之间交互
2017/05/31 Javascript
angularjs实现上拉加载和下拉刷新数据功能
2017/06/12 Javascript
jQuery validata插件实现方法
2017/06/25 jQuery
理解Angular的providers给Http添加默认headers
2017/07/04 Javascript
Angular通过指令动态添加组件问题
2018/07/09 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
2019/08/01 Javascript
Python的Urllib库的基本使用教程
2015/04/30 Python
python实现线程池的方法
2015/06/30 Python
Python 多线程实例详解
2017/03/25 Python
Python 变量类型详解
2018/10/10 Python
2019 Python最新面试题及答案16道题
2019/04/11 Python
使用python实现滑动验证码功能
2019/08/05 Python
python递归调用中的坑:打印有值, 返回却None
2020/03/16 Python
opencv中图像叠加/图像融合/按位操作的实现
2020/04/01 Python
python3通过subprocess模块调用脚本并和脚本交互的操作
2020/12/05 Python
Canvas系列之滤镜效果
2019/02/12 HTML / CSS
HTML5触摸事件(touchstart、touchmove和touchend)的实现
2020/05/08 HTML / CSS
总经理助理工作职责
2014/02/06 职场文书
材料工程专业毕业生求职信
2014/03/04 职场文书
优秀驾驶员先进事迹材料
2014/05/04 职场文书
2014年工作总结与下年工作计划
2014/11/27 职场文书
2016新教师岗前培训心得体会
2016/01/08 职场文书
《观察物体》教学反思
2016/02/17 职场文书
Oracle笔记
2021/04/05 Oracle