Python 列表排序方法reverse、sort、sorted详解


Posted in Python onJanuary 22, 2016

python语言中的列表排序方法有三个:reverse反转/倒序排序、sort正序排序、sorted可以获取排序后的列表。在更高级列表排序中,后两中方法还可以加入条件参数进行排序。

reverse()方法

将列表中元素反转排序,比如下面这样

>>> x = [1,5,2,3,4]
>>> x.reverse()
>>> x
[4, 3, 2, 5, 1]

reverse列表反转排序:是把原列表中的元素顺序从左至右的重新存放,而不会对列表中的参数进行排序整理。如果需要对列表中的参数进行整理,就需要用到列表的另一种排序方式sort正序排序。

sort()排序方法

此函数方法对列表内容进行正向排序,排序后的新列表会覆盖原列表(id不变),也就是sort排序方法是直接修改原列表list排序方法。

>>> a = [5,7,6,3,4,1,2]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5, 6, 7]

在玩蛇网许多python初学者,对sort()方法比较糊涂。有的时候会需要一个排序好的列表,而又想保存原有未排序列表,他们会这么操作:

>>> a = [5,7,6,3,4,1,2]
>>> b = a.sort()
>>> print b
None

这个时候问题出现了,变量b得到的是一个空值。那么想要得到排序好的列表,又想保留原列表怎么办呢?列表sorted()方法可以帮你实现。

sorted()方法

即可以保留原列表,又能得到已经排序好的列表sorted()操作方法如下:

>>> a = [5,7,6,3,4,1,2]
>>> b = sorted(a)
>>> a
[5, 7, 6, 3, 4, 1, 2]
>>> b
[1, 2, 3, 4, 5, 6, 7]

sorted()方法可以用在任何数据类型的序列中,返回的总是一个列表形式:

>>> sorted('iplaypython.com')
['.', 'a', 'c', 'h', 'i', 'l', 'm', 'n', 'o', 'o', 'p', 'p', 't', 'y', 'y']

三者的区别

sort()是可变对象(字典、列表)的方法,无参数,无返回值,sort()会改变可变对象,因此无需返回值。sort()方法是可变对象独有的方法或者属性,而作为不可变对象如元组、字符串是不具有这些方法的,如果调用将会返回一个异常。

>>> a=[5,4,3,2,1]
>>> a.sort()
>>> 
>>> a
[1, 2, 3, 4, 5]

sorted()是python的内置函数,并不是可变对象(列表、字典)的特有方法,sorted()函数需要一个参数(参数可以是列表、字典、元组、字符串),无论传递什么参数,都将返回一个以列表为容器的返回值,如果是字典将返回键的列表。

>>> mystring="54321"
>>> mytuple=(5,4,3,2,1)
>>> mylist=[5,4,3,2,1]
>>> sorted(mystring)
['1', '2', '3', '4', '5']
>>> sorted(mytuple)
[1, 2, 3, 4, 5]
>>> sorted(mylist)
[1, 2, 3, 4, 5]

reverse()与sort的使用方式一样,而reversed()与sorted()的使用方式相同

>>> mylist=[5,4,3,2,1]
>>> mylist.reverse()
>>> mylist
[1, 2, 3, 4, 5]
>>> mylist=[5,4,3,2,1]
>>> for i in reversed(mylist):
...   print i,
... 
1 2 3 4 5

通过序列的切片也可以达到“逆转”的效果

>>> mystring="54321"
>>> mytuple=(5,4,3,2,1)
>>> mylist=[5,4,3,2,1]
>>> mystring[::-1]
'12345'
>>> mytuple[::-1]
(1, 2, 3, 4, 5)
>>> mylist[::-1]
[1, 2, 3, 4, 5]

本文讲解的是Python列表最基础的排序方法,列表还有更高级的排序方法,比如可以在方法内加入排序条件,这些会在列表高级排序方法文章中为大家介绍。

Python 相关文章推荐
python实现根据主机名字获得所有ip地址的方法
Jun 28 Python
python开发之thread实现布朗运动的方法
Nov 11 Python
Python中matplotlib中文乱码解决办法
May 12 Python
python批量复制图片到另一个文件夹
Sep 17 Python
Pandas过滤dataframe中包含特定字符串的数据方法
Nov 07 Python
python调用虹软2.0第三版的具体使用
Feb 22 Python
使用Python为中秋节绘制一块美味的月饼
Sep 11 Python
基于python-pptx库中文文档及使用详解
Feb 14 Python
如何基于python对接钉钉并获取access_token
Apr 21 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
May 12 Python
Numpy实现卷积神经网络(CNN)的示例
Oct 09 Python
python3实现常见的排序算法(示例代码)
Jul 04 Python
Python中使用urllib2模块编写爬虫的简单上手示例
Jan 20 #Python
Python模拟百度登录实例详解
Jan 20 #Python
Python的Scrapy爬虫框架简单学习笔记
Jan 20 #Python
使用Python编写爬虫的基本模块及框架使用指南
Jan 20 #Python
Python中urllib+urllib2+cookielib模块编写爬虫实战
Jan 20 #Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
Jan 20 #Python
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
Jan 20 #Python
You might like
PHP Directory 函数的详解
2013/03/07 PHP
PHP正则验证Email的方法
2015/06/15 PHP
JavaScript 特殊字符
2007/04/05 Javascript
js 深拷贝函数
2008/12/04 Javascript
javascript Demo模态窗口
2009/12/06 Javascript
Javascript Jquery 遍历Json的实现代码
2010/03/31 Javascript
JQuery autocomplete 使用手册
2010/04/01 Javascript
javascript中最常用的继承模式 组合继承
2010/08/12 Javascript
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
2013/06/06 Javascript
微信支付 JS API支付接口详解
2016/07/11 Javascript
jQuery插件版本冲突的处理方法分析
2017/01/16 Javascript
js数字滑动时钟的简单实现(示例讲解)
2017/08/14 Javascript
纯js代码生成可搜索选择下拉列表的实例
2018/01/11 Javascript
基于IView中on-change属性的使用详解
2018/03/15 Javascript
详解vue填坑之解决部分浏览器不支持pushState方法
2018/07/12 Javascript
vue使用高德地图根据坐标定位点的实现代码
2019/08/22 Javascript
jQuery 查找元素操作实例小结
2019/10/02 jQuery
python计算对角线有理函数插值的方法
2015/05/07 Python
django中的HTML控件及参数传递方法
2018/03/20 Python
解决Python 中英文混输格式对齐的问题
2018/07/16 Python
Python3.5文件修改操作实例分析
2019/05/01 Python
对django layer弹窗组件的使用详解
2019/08/31 Python
python实现同一局域网下传输图片
2020/03/20 Python
python logging.info在终端没输出的解决
2020/05/12 Python
Python必须了解的35个关键词
2020/07/16 Python
CSS3 滤镜 webkit-filter详细介绍及使用方法
2012/12/27 HTML / CSS
孤独星球出版物:Lonely Planet Publications
2018/03/17 全球购物
英国浴室洗脸盆购物网站:Click Basin
2018/06/08 全球购物
经典大学生求职信范文
2014/01/06 职场文书
大学生如何写自荐信
2014/01/08 职场文书
开会迟到检讨书
2014/01/08 职场文书
大学生标准自荐书
2014/06/15 职场文书
铁人观后感
2015/06/16 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
建房合同协议书
2016/03/21 职场文书
导游词之徐州云龙湖
2019/11/19 职场文书