Python学习小技巧之列表项的排序


Posted in Python onMay 20, 2017

本文介绍的是关于Python列表项排序的相关内容,分享出来供大家参考学习,下面来看看详细的介绍:

典型代码1:

data_list = [6, 9, 1, 3, 0, 10, 100, -100] 
data_list.sort() 
print(data_list)

输出1:

[-100, 0, 1, 3, 6, 9, 10, 100]

典型代码2:

data_list = [6, 9, 1, 3, 0, 10, 100, -100] 
data_list_copy = sorted(data_list) 
print(data_list) 
print(data_list_copy)

输出2:

[6, 9, 1, 3, 0, 10, 100, -100] 
[-100, 0, 1, 3, 6, 9, 10, 100]

应用场景

需要对列表中的项进行排序时使用。其中典型代码1是使用的列表自身的一个排序方法sort,这个方法自动按照升序排序,并且是原地排序,被排序的列表本身会被修改;典型代码2是调用的内置函数sort,会产生一个新的经过排序后的列表对象,原列表不受影响。这两种方式接受的参数几乎是一样的,他们都接受一个key参数,这个参数用来指定用对象的哪一部分为排序的依据:

data_list = [(0, 100), (77, 34), (55, 97)] 
data_list.sort(key=lambda x: x[1]) # 我们想要基于列表项的第二个数进行排序 
print(data_list) 
 
>>> [(77, 34), (55, 97), (0, 100)]

另外一个经常使用的参数是reverse,用来指定是否按照倒序排序,默认为False:

data_list = [(0, 100), (77, 34), (55, 97)] 
data_list.sort(key=lambda x: x[1], reverse=True) # 我们想要基于列表项的第二个数进行排序,并倒序 
print(data_list) 
>>> [(0, 100), (55, 97), (77, 34)]

带来的好处

1. 内置的排序方法,执行效率高,表达能力强,使代码更加紧凑,已读

2. 灵活的参数,用于指定排序的基准,比在类似于Java的语言中需要写一个comparator要方便很多

其它说明

1. sorted内置函数比列表的sort方法要适用范围更广泛,它可以对除列表之外的可迭代数据结构进行排序;

2. list内置的sort方法,属于原地排序,理论上能够节省内存的消耗;

总结

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python断言assert的用法代码解析
Feb 03 Python
tensorflow 输出权重到csv或txt的实例
Jun 14 Python
django小技巧之html模板中调用对象属性或对象的方法
Nov 30 Python
matplotlib实现热成像图colorbar和极坐标图的方法
Dec 13 Python
python将视频转换为全字符视频
Apr 26 Python
python实现微信自动回复机器人功能
Jul 11 Python
Python检查 云备份进程是否正常运行代码实例
Aug 22 Python
Python opencv相机标定实现原理及步骤详解
Apr 09 Python
python可以用哪些数据库
Jun 22 Python
Python实现播放和录制声音的功能
Aug 12 Python
Python 列表反转显示的四种方法
Nov 16 Python
Python Matplotlib绘制动画的代码详解
May 30 Python
Python学习小技巧之列表项的推导式与过滤操作
May 20 #Python
Python yield 使用方法浅析
May 20 #Python
Python学习小技巧之列表项的拼接
May 20 #Python
Django验证码的生成与使用示例
May 20 #Python
Linux RedHat下安装Python2.7开发环境
May 20 #Python
深入理解Python中的内置常量
May 20 #Python
python万年历实现代码 含运行结果
May 20 #Python
You might like
fleaphp crud操作之find函数的使用方法
2011/04/23 PHP
PHP入门教程之会话控制技巧(cookie与session)
2016/09/11 PHP
快速保存网页中所有图片的方法
2006/06/23 Javascript
javascript调试说明
2010/06/07 Javascript
jquerymobile checkbox及时刷新才能获取其准确值
2012/04/14 Javascript
Extjs3.0 checkboxGroup 动态添加item实现思路
2013/08/14 Javascript
js 获取、清空input type="file"的值示例代码
2014/02/19 Javascript
JavaScript在IE和FF下的兼容性问题
2014/05/19 Javascript
Nodejs Post请求报socket hang up错误的解决办法
2014/09/25 NodeJs
GitHub上一些实用的JavaScript的文件压缩解压缩库推荐
2016/03/13 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
2016/06/16 Javascript
利用jQuery的动画函数animate实现豌豆发射效果
2016/08/28 Javascript
ES6入门教程之Iterator与for...of循环详解
2017/05/17 Javascript
微信小程序实现滑动删除效果
2017/05/19 Javascript
jquery对table做排序操作的实例演示
2017/08/10 jQuery
javaScript封装的各种写法
2017/08/14 Javascript
一步步教会你微信小程序的登录鉴权
2018/04/09 Javascript
vue移动端轻量级的轮播组件实现代码
2018/07/12 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
2020/02/06 Javascript
深入理解python中的atexit模块
2017/03/07 Python
Django中login_required装饰器的深入介绍
2017/11/24 Python
python解决字符串倒序输出的问题
2018/06/25 Python
Django 连接sql server数据库的方法
2018/06/30 Python
Python实现Linux监控的方法
2019/05/16 Python
Python用input输入列表的实例代码
2020/02/07 Python
TensorFlow:将ckpt文件固化成pb文件教程
2020/02/11 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
python 实现两个npy档案合并
2020/07/01 Python
python 贪心算法的实现
2020/09/18 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
2020/10/15 Python
First Aid Beauty官网:FAB急救面霜
2018/05/24 全球购物
巴西儿童时尚购物网站:Dinda
2019/08/14 全球购物
西铁城美国官方网站:Citizen Watch美国
2019/11/08 全球购物
电脑教师的自我评价
2013/12/18 职场文书
微笑服务标语
2014/06/24 职场文书
二手房购房协议书范本
2014/10/05 职场文书