python的sorted用法详解


Posted in Python onJune 25, 2019

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

排序,数字、字符串按照ASCII,中文按照unicode从小到大排序

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']
# 2.有一个list['This','is','a','Boy','!'],所有元素都是字符串,对它进行大小写无关的排序
li=['This','is','a','Boy','!']
l=[i.lower() for i in li]
# l1 =l[:]
l.sort() # 对原列表进行排序,无返回值
print(l)
# print(sorted(l1))  # 有返回值原列表没有变化
# print(l1)

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]

True为倒序排列,False为正序排列

Python 相关文章推荐
Python开发如何在ubuntu 15.10 上配置vim
Jan 25 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
Jun 02 Python
Windows系统下多版本pip的共存问题详解
Oct 10 Python
python中字符串比较使用is、==和cmp()总结
Mar 18 Python
在python3.5中使用OpenCV的实例讲解
Apr 02 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
Jun 28 Python
Django实现发送邮件功能
Jul 18 Python
python 一篇文章搞懂装饰器所有用法(建议收藏)
Aug 23 Python
python中关于数据类型的学习笔记
Jul 19 Python
python 判断一组数据是否符合正态分布
Sep 23 Python
Python 键盘事件详解
Nov 11 Python
基于Pygame实现简单的贪吃蛇游戏
Dec 06 Python
PyQt5实现简易电子词典
Jun 25 #Python
python如何制作英文字典
Jun 25 #Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
Jun 25 #Python
python模拟菜刀反弹shell绕过限制【推荐】
Jun 25 #Python
Pandas之DataFrame对象的列和索引之间的转化
Jun 25 #Python
Pandas之Fillna填充缺失数据的方法
Jun 25 #Python
PYQT5实现控制台显示功能的方法
Jun 25 #Python
You might like
Win2000+Apache+MySql+PHP4+PERL安装使用小结
2006/10/09 PHP
在Windows版的PHP中使用ADO
2006/10/09 PHP
windows下开发并编译PHP扩展的方法
2011/03/18 PHP
php中通过curl模拟登陆discuz论坛的实现代码
2012/02/16 PHP
php实现高效获取图片尺寸的方法
2014/12/12 PHP
Apache+PHP+MySQL搭建PHP开发环境图文教程
2020/08/06 PHP
基于jQuery的日期选择控件
2009/10/27 Javascript
javascript 内存回收机制理解
2011/01/17 Javascript
javascript 系统文件夹文件操作及参数介绍
2013/01/08 Javascript
深入解析contentWindow, contentDocument
2013/07/04 Javascript
浅析js中取绝对值的2种方法
2013/07/09 Javascript
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
js加载读取内容及显示与隐藏div示例
2014/02/13 Javascript
JS实现的一个简单的Autocomplete自动完成例子
2014/04/16 Javascript
jQuery实现仿Alipay支付宝首页全屏焦点图切换特效
2015/05/04 Javascript
js生成验证码并直接在前端判断
2015/05/15 Javascript
js去除浏览器默认底图的方法
2015/06/08 Javascript
javascript事件绑定学习要点
2016/03/09 Javascript
jQuery验证表单格式的使用方法
2017/01/10 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
加载 vue 远程代码的组件实例详解
2017/11/20 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
2018/12/03 Javascript
Vue组件的使用及个人理解与介绍
2019/02/09 Javascript
Node使用koa2实现一个简单JWT鉴权的方法
2021/01/26 Javascript
用PyQt进行Python图形界面的程序的开发的入门指引
2015/04/14 Python
计算机二级python学习教程(3) python语言基本数据类型
2019/05/16 Python
Python单元测试工具doctest和unittest使用解析
2019/09/02 Python
Python 去除字符串中指定字符串
2020/03/05 Python
css3 实现元素弧线运动的示例代码
2020/04/24 HTML / CSS
HTML5+CSS设置浮动却没有动反而在中间且错行的问题
2020/05/26 HTML / CSS
工作会议欢迎词
2014/01/16 职场文书
网上商城创业计划书范文
2014/01/31 职场文书
学生党支部先进事迹
2014/02/04 职场文书
党员弘扬焦裕禄精神思想汇报
2014/09/10 职场文书
护理专业自我评价
2015/03/11 职场文书
Java中常用解析工具jackson及fastjson的使用
2021/06/28 Java/Android