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 相关文章推荐
pycharm 使用心得(三)Hello world!
Jun 05 Python
如何优雅地处理Django中的favicon.ico图标详解
Jul 05 Python
基于数据归一化以及Python实现方式
Jul 11 Python
Python实现的在特定目录下导入模块功能分析
Feb 11 Python
python对象与json相互转换的方法
May 07 Python
python字符串中匹配数字的正则表达式
Jul 03 Python
Python 给定的经纬度标注在地图上的实现方法
Jul 05 Python
用python3 urllib破解有道翻译反爬虫机制详解
Aug 14 Python
Python类和实例的属性机制原理详解
Mar 21 Python
pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法
Sep 16 Python
python 如何实现遗传算法
Sep 22 Python
Python中Numpy和Matplotlib的基本使用指南
Nov 02 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版本号
2006/10/09 PHP
laravel 5 实现模板主题功能
2015/03/02 PHP
php中二维数组排序问题方法详解
2015/08/28 PHP
php foreach如何跳出两层循环(详解)
2016/11/05 PHP
基于Asp.net与Javascript控制的日期控件
2010/05/22 Javascript
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
页面加载完后自动执行一个方法的js代码
2014/09/06 Javascript
Javascript学习指南
2014/12/01 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
javascript显式类型转换实例分析
2015/04/25 Javascript
AngularJS基础知识笔记之过滤器
2015/05/10 Javascript
jQuery实现的超酷苹果风格图标滑出菜单效果代码
2015/09/16 Javascript
JS获取子窗口中返回的数据实现方法
2016/05/28 Javascript
bootstrap table分页模板和获取表中的ID方法
2017/01/10 Javascript
如何选择适合你的JavaScript框架
2017/11/20 Javascript
用vue快速开发app的脚手架工具
2018/06/11 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
2020/07/19 Javascript
jQuery带控制按钮轮播图插件
2020/07/31 jQuery
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
理想高通滤波实现Python opencv示例
2019/01/30 Python
Python K最近邻从原理到实现的方法
2019/08/15 Python
python中adb有什么功能
2020/06/07 Python
python Matplotlib基础--如何添加文本和标注
2021/01/26 Python
墨西哥巴士车票在线购买:ClickBus
2018/03/27 全球购物
万代美国官网:PREMIUM BANDAI USA
2020/09/11 全球购物
计算机专业毕业生自荐信
2013/12/31 职场文书
销售业务员岗位职责
2014/01/29 职场文书
《微笑着面对生活》优秀演讲稿范文
2014/09/23 职场文书
群众路线教育实践活动学习笔记
2014/11/05 职场文书
2014年个人年终总结
2015/03/09 职场文书
幼儿园万圣节活动总结
2015/05/05 职场文书
2015年财务部年度工作总结
2015/05/19 职场文书
运动会3000米加油稿
2015/07/21 职场文书
护理自荐信
2019/05/14 职场文书
文明医院的标语集锦!
2019/07/24 职场文书