python中的sort方法使用详解


Posted in Python onJuly 25, 2014

Python中的sort()方法用于数组排序,本文以实例形式对此加以详细说明:

一、基本形式
列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修改的。

x = [4, 6, 2, 1, 7, 9]
x.sort()
print x # [1, 2, 4, 6, 7, 9]

如果需要一个排序好的副本,同时保持原有列表不变,怎么实现呢

x =[4, 6, 2, 1, 7, 9]
y = x[ : ]
y.sort()
print y #[1, 2, 4, 6, 7, 9]
print x #[4, 6, 2, 1, 7, 9]

注意:y = x[:] 通过分片操作将列表x的元素全部拷贝给y,如果简单的把x赋值给y:y = x,y和x还是指向同一个列表,并没有产生新的副本

另一种获取已排序的列表副本的方法是使用sorted函数:

x =[4, 6, 2, 1, 7, 9]
y = sorted(x)
print y #[1, 2, 4, 6, 7, 9]
print x #[4, 6, 2, 1, 7, 9]

sorted返回一个有序的副本,并且类型总是列表,如下:

print sorted('Python') #['P', 'h', 'n', 'o', 't', 'y']

二、自定义比较函数

可以定义自己的比较函数,然后通过参数传递给sort方法:

def comp(x, y):
if x < y:
return 1
elif x > y:
return -1
else:
return 0

nums = [3, 2, 8 ,0 , 1]
nums.sort(comp)
print nums # 降序排序[8, 3, 2, 1, 0]
nums.sort(cmp) # 调用内建函数cmp ,升序排序
print nums # 降序排序[0, 1, 2, 3, 8]

三、可选参数

sort方法还有两个可选参数:key和reverse

1、key在使用时必须提供一个排序过程总调用的函数:

x = ['mmm', 'mm', 'mm', 'm' ]
x.sort(key = len)
print x # ['m', 'mm', 'mm', 'mmm']

2、reverse实现降序排序,需要提供一个布尔值:

y = [3, 2, 8 ,0 , 1]
y.sort(reverse = True)
print y #[8, 3, 2, 1, 0]
Python 相关文章推荐
机器学习10大经典算法详解
Dec 07 Python
对matplotlib改变colorbar位置和方向的方法详解
Dec 13 Python
Python中函数参数匹配模型详解
Jun 09 Python
python根据时间获取周数代码实例
Sep 30 Python
YUV转为jpg图像的实现
Dec 09 Python
python实现扫雷游戏
Mar 03 Python
使用python处理题库表格并转化为word形式的实现
Apr 14 Python
将keras的h5模型转换为tensorflow的pb模型操作
May 25 Python
Python 爬虫的原理
Jul 30 Python
python使用yaml 管理selenium元素的示例
Dec 01 Python
Python制作动态字符画的源码
Aug 04 Python
python基础之文件操作
Oct 24 Python
python实现监控linux性能及进程消耗性能的方法
Jul 25 #Python
python的dict,set,list,tuple应用详解
Jul 24 #Python
Python常见数据结构详解
Jul 24 #Python
python海龟绘图实例教程
Jul 24 #Python
python实现绘制树枝简单示例
Jul 24 #Python
python实现进程间通信简单实例
Jul 23 #Python
Python数组条件过滤filter函数使用示例
Jul 22 #Python
You might like
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
2014/07/15 PHP
PHP简单生成缩略图相册的方法
2015/07/29 PHP
javascript 显示当前系统时间代码
2009/12/28 Javascript
使用jquery与图片美化checkbox和radio控件的代码(打包下载)
2010/11/11 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
2013/02/18 Javascript
终于解决了IE8不支持数组的indexOf方法
2013/04/03 Javascript
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
jquery实现列表上下移动功能
2016/02/25 Javascript
jquery ztree实现模糊搜索功能
2016/02/25 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
JavaScript——DOM操作——Window.document对象详解
2016/07/14 Javascript
Javascript中的prototype与继承
2017/02/06 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
2017/10/19 jQuery
vue.js实现左边导航切换右边内容
2019/10/21 Javascript
vue实现拖拽效果
2019/12/23 Javascript
js实现手表表盘时钟与圆周运动
2020/09/18 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
2020/10/28 Javascript
[07:01]DOTA2-DPC中国联赛正赛 Aster vs Magma 3月5日 赛后选手采访
2021/03/11 DOTA
python实现的jpg格式图片修复代码
2015/04/21 Python
python输出当前目录下index.html文件路径的方法
2015/04/28 Python
详细解析Python中的变量的数据类型
2015/05/13 Python
Python将文本去空格并保存到txt文件中的实例
2018/07/24 Python
python中类的属性和方法介绍
2018/11/27 Python
python+selenium+chrome批量文件下载并自动创建文件夹实例
2020/04/27 Python
Python pytesseract验证码识别库用法解析
2020/06/29 Python
英国潮流网站:END.(全球免邮)
2017/01/16 全球购物
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
采购主管的岗位职责
2013/12/17 职场文书
生日礼品店创业计划书范文
2014/03/21 职场文书
信息管理与信息系统专业求职信
2014/06/21 职场文书
五年级作文之劳动作文
2019/11/12 职场文书
Python机器学习三大件之一numpy
2021/05/10 Python
使用CSS设置滚动条样式
2022/01/18 HTML / CSS
Python matplotlib可视化之绘制韦恩图
2022/02/24 Python
分享提高 Python 代码的可读性的技巧
2022/03/03 Python