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实现简单网页图片抓取完整代码实例
Dec 15 Python
Python中一些不为人知的基础技巧总结
May 19 Python
Python装饰器语法糖
Jan 02 Python
Python数据可视化教程之Matplotlib实现各种图表实例
Jan 13 Python
python使用MQTT给硬件传输图片的实现方法
May 05 Python
python numpy 常用随机数的产生方法的实现
Aug 21 Python
浅析Python3 pip换源问题
Jan 06 Python
opencv python Canny边缘提取实现过程解析
Feb 03 Python
使用TFRecord存取多个数据案例
Feb 17 Python
Python matplotlib读取excel数据并用for循环画多个子图subplot操作
Jul 14 Python
python爬虫筛选工作实例讲解
Nov 23 Python
Pandas数据分析的一些常用小技巧
Feb 07 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
php分页示例代码
2007/03/19 PHP
服务器上配置PHP运行环境教程
2015/02/12 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
JavaScript 面向对象之命名空间
2010/05/04 Javascript
优化Jquery,提升网页加载速度
2013/11/14 Javascript
批量修改标签css样式以input标签为例
2014/07/31 Javascript
JavaScript计算两个日期时间段内日期的方法
2015/03/16 Javascript
js实现鼠标滑过文字链接色彩变化的效果
2015/05/06 Javascript
jquery实现Slide Out Navigation滑出式菜单效果代码
2015/09/07 Javascript
smartcrop.js智能图片裁剪库
2015/10/14 Javascript
详谈JS中实现种子随机数及作用
2016/07/19 Javascript
AngularJS入门教程之与服务器(Ajax)交互操作示例【附完整demo源码下载】
2016/11/02 Javascript
利用node.js本地搭建HTTP服务器
2017/04/19 Javascript
vuejs手把手教你写一个完整的购物车实例代码
2017/07/06 Javascript
基于VSCode调试网页JavaScript代码过程详解
2020/07/20 Javascript
python方向键控制上下左右代码
2018/01/20 Python
Flask框架信号用法实例分析
2018/07/24 Python
python3 中文乱码与默认编码格式设定方法
2018/10/31 Python
在Python中实现shuffle给列表洗牌
2018/11/08 Python
python中比较两个列表的实例方法
2019/07/04 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
python处理大日志文件
2019/07/23 Python
pytorch:model.train和model.eval用法及区别详解
2020/02/20 Python
keras得到每层的系数方式
2020/06/15 Python
css3 矩阵的使用详解
2018/03/20 HTML / CSS
Html5实现用户注册自动校验功能实例代码
2016/05/24 HTML / CSS
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
台湾母婴用品购物网站:Infant婴之房
2018/06/15 全球购物
纯净、自信、100%的羊绒服装:360Cashmere
2021/02/20 全球购物
安全检查验收制度
2014/01/12 职场文书
农村党支部先进事迹
2014/01/14 职场文书
心理健康活动总结
2014/04/30 职场文书
2015年四年级班主任工作总结
2015/10/22 职场文书
导游词之南迦巴瓦峰
2019/11/19 职场文书
nginx的zabbix 5.0安装部署的方法步骤
2021/07/16 Servers
MySQL外键约束(FOREIGN KEY)案例讲解
2021/08/23 MySQL