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复制目录结构脚本代码分享
Mar 06 Python
Python新手在作用域方面经常容易碰到的问题
Apr 03 Python
Python使用urllib2模块抓取HTML页面资源的实例分享
May 03 Python
Sanic框架基于类的视图用法示例
Jul 18 Python
利用Python如何批量修改数据库执行Sql文件
Jul 29 Python
python实现二维插值的三维显示
Dec 17 Python
详解如何管理多个Python版本和虚拟环境
May 10 Python
在windows下使用python进行串口通讯的方法
Jul 02 Python
Python字节单位转换实例
Dec 05 Python
python安装后的目录在哪里
Jun 21 Python
django学习之ajax post传参的2种格式实例
May 14 Python
Windows安装Anaconda3的方法及使用过程详解
Jun 11 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
php正则校验用户名介绍
2008/07/19 PHP
php类的扩展和继承用法实例
2015/06/20 PHP
php读取txt文件并将数据插入到数据库
2016/02/23 PHP
详解PHP归并排序的实现
2016/10/18 PHP
prototype 1.5相关知识及他人笔记
2006/12/16 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
2013/02/18 Javascript
ExtJs设置GridPanel表格文本垂直居中示例
2013/07/15 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
2014/01/24 Javascript
基于JavaScript制作霓虹灯文字 代码 特效
2015/09/01 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
2016/08/03 Javascript
JS实现分页浏览横向图片(类轮播)实例代码
2017/11/06 Javascript
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
JavaScript的数据类型转换原则(干货)
2018/03/15 Javascript
详解Vue 全局变量,局部变量
2019/04/17 Javascript
新手快速入门微信小程序组件库 iView Weapp
2019/06/24 Javascript
vue中添加与删除关键字搜索功能
2019/10/12 Javascript
Vue 3.0 全家桶抢先体验
2020/04/28 Javascript
[01:03]PWL开团时刻DAY6——别打我
2020/11/05 DOTA
在漏洞利用Python代码真的很爽
2007/08/26 Python
使用python批量化音乐文件格式转换的实例
2019/01/09 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
2020/02/15 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
2020/03/12 Python
python+selenium+Chrome options参数的使用
2020/03/18 Python
Python基于pyecharts实现关联图绘制
2020/03/27 Python
python 爬取B站原视频的实例代码
2020/09/09 Python
安装Anaconda3及使用Jupyter的方法
2020/10/27 Python
Python自动化办公Excel模块openpyxl原理及用法解析
2020/11/05 Python
世界上最大的汽车共享网站:Zipcar
2017/01/14 全球购物
如何现实servlet的单线程模式
2014/08/05 面试题
银行职业规划书范文
2013/12/28 职场文书
美容院营销方案
2014/03/05 职场文书
会计专业导师推荐信
2014/03/08 职场文书
中国在我心中演讲稿
2014/09/13 职场文书
朋友离别感言
2015/08/04 职场文书
Pytest中conftest.py的用法
2021/06/27 Python
企业版Windows 11有哪些新功能? Win11适用于企业的功能介绍
2021/11/21 数码科技