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实现设置windows桌面壁纸代码分享
Mar 28 Python
Python获取linux主机ip的简单实现方法
Apr 18 Python
Python实现命令行通讯录实例教程
Aug 18 Python
详解Python中最难理解的点-装饰器
Apr 03 Python
Python实现正则表达式匹配任意的邮箱方法
Dec 20 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
Aug 20 Python
Python搭建代理IP池实现获取IP的方法
Oct 27 Python
python-web根据元素属性进行定位的方法
Dec 13 Python
python如何建立全零数组
Jul 19 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
Dec 07 Python
python中re模块知识点总结
Jan 17 Python
PyTorch device与cuda.device用法
Apr 03 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实现的MySQL数据浏览器
2007/03/11 PHP
CodeIgniter php mvc框架 中国网站
2008/05/26 PHP
php+mysqli使用面向对象方式查询数据库实例
2015/01/29 PHP
php实现汉字验证码和算式验证码的方法
2015/03/07 PHP
laravel 实现设置时区的简单方法
2019/10/10 PHP
javascript 日期常用的方法
2009/11/11 Javascript
JavaScript实现的背景自动变色代码
2015/10/17 Javascript
最简单的JavaScript图片轮播代码(两种方法)
2015/12/18 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
2016/06/15 Javascript
Javascript中字符串replace方法的第二个参数探究
2016/12/05 Javascript
Bootstrap禁用响应式布局的实现方法
2017/03/09 Javascript
JS 60秒后重新发送验证码的实例讲解
2017/07/26 Javascript
Node.js 的 GC 机制详解
2019/06/03 Javascript
[01:30:55]VG vs Mineski Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
Python从MP3文件获取id3的方法
2015/06/15 Python
python简单实现刷新智联简历
2016/03/30 Python
Python实现简单的语音识别系统
2017/12/13 Python
Python读写文件基础知识点
2019/06/10 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
2021/01/27 Python
详解Java中一维、二维数组在内存中的结构
2021/02/11 Python
matplotlib源码解析标题实现(窗口标题,标题,子图标题不同之间的差异)
2021/02/22 Python
CSS3实现跳动的动画效果
2016/09/12 HTML / CSS
有关HTML5 Video对象的ontimeupdate事件(Chrome上无效)的问题
2013/07/19 HTML / CSS
法学专业应届生求职信
2013/10/16 职场文书
餐厅考勤管理制度
2014/01/28 职场文书
小学生家长评语集锦
2014/01/30 职场文书
小学教师评语大全
2014/04/23 职场文书
教师考核材料
2014/05/21 职场文书
党支部书记岗位职责
2015/02/15 职场文书
逃出克隆岛观后感
2015/06/09 职场文书
学历证明范文
2015/06/16 职场文书
《红领巾真好》教学反思
2016/02/16 职场文书
诚信高考倡议书
2019/06/24 职场文书
JavaWeb实现显示mysql数据库数据
2022/03/19 Java/Android
如何使用SQL Server语句创建表
2022/04/12 SQL Server