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程序设计入门(1)基本语法简介
Jun 13 Python
请不要重复犯我在学习Python和Linux系统上的错误
Dec 12 Python
Python用Try语句捕获异常的实例方法
Jun 26 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
Jul 01 Python
详解如何在cmd命令窗口中搭建简单的python开发环境
Aug 29 Python
TensorBoard 计算图的查看方式
Feb 15 Python
Python dict和defaultdict使用实例解析
Mar 12 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
Mar 18 Python
简单了解python调用其他脚本方法实例
Mar 26 Python
jupyter 使用Pillow包显示图像时inline显示方式
Apr 24 Python
Python xpath表达式如何实现数据处理
Jun 13 Python
python属于软件吗
Jun 18 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 xml留言板 xml存储数据的简单例子
2009/08/24 PHP
php登陆页的密码处理方式分享
2013/10/14 PHP
浅谈Eclipse PDT调试PHP程序
2014/06/09 PHP
CodeIgniter记录错误日志的方法全面总结
2016/05/17 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
2016/07/06 PHP
JavaScript 页面编码与浏览器类型判断代码
2010/06/03 Javascript
一个简单的动态加载js和css的jquery代码
2014/09/01 Javascript
js获取字符串最后一位方法汇总
2014/11/13 Javascript
JS实现黑色风格的网页TAB选项卡效果代码
2015/10/09 Javascript
浅谈Javascript数据属性与访问器属性
2016/07/26 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
bootstrap datepicker限定可选时间范围实现方法
2016/09/28 Javascript
JS常用正则表达式总结【经典】
2017/05/12 Javascript
AngularJS实现自定义指令及指令配置项的方法
2017/11/20 Javascript
Vue 使用中的小技巧
2018/04/26 Javascript
新手快速入门微信小程序组件库 iView Weapp
2019/06/24 Javascript
解决ant Design Search无法输入内容的问题
2020/10/29 Javascript
[01:14]英雄,所敬略同——2018完美盛典宣传视频
2018/12/05 DOTA
利用matplotlib+numpy绘制多种绘图的方法实例
2017/05/03 Python
python3 pillow生成简单验证码图片的示例
2017/09/19 Python
图解Python变量与赋值
2018/04/03 Python
pygame游戏之旅 添加icon和bgm音效的方法
2018/11/21 Python
用python实现刷点击率的示例代码
2019/02/21 Python
Python时间序列处理之ARIMA模型的使用讲解
2019/04/02 Python
Python序列化与反序列化pickle用法实例
2019/11/11 Python
python学生信息管理系统实现代码
2019/12/17 Python
Python3 实现减少可调用对象的参数个数
2019/12/20 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
HTML5公共页面提取作为公用代码的方法
2020/06/30 HTML / CSS
豪华床上用品、床单和浴室必需品:Peacock Alley
2019/09/04 全球购物
芭比波朗加拿大官方网站:Bobbi Brown Cosmetics CA
2020/11/05 全球购物
四川internet信息高速公路(C#)笔试题
2012/02/29 面试题
公司联欢晚会主持词
2014/03/22 职场文书
团队精神的演讲稿
2014/05/14 职场文书
2014年教研工作总结
2014/12/06 职场文书