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的urllib库提交WEB表单
Feb 24 Python
DJANGO-ALLAUTH社交用户系统的安装配置
Nov 18 Python
python复制与引用用法分析
Apr 08 Python
使用python编写简单的小程序编译成exe跑在win10上
Jan 15 Python
Python拼接微信好友头像大图的实现方法
Aug 01 Python
使用python Telnet远程登录执行程序的方法
Jan 26 Python
django query模块
Apr 20 Python
python 两个数据库postgresql对比
Oct 21 Python
简单了解python元组tuple相关原理
Dec 02 Python
Python loguru日志库之高效输出控制台日志和日志记录
Mar 07 Python
python入门教程之基本算术运算符
Nov 13 Python
Django解决frame拒绝问题的方法
Dec 18 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文章按日期(月日)SQL归档语句
2012/11/29 PHP
让CodeIgniter的ellipsize()支持中文截断的方法
2014/06/12 PHP
两个php日期控制类实例
2014/12/09 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
2016/01/22 PHP
php调用云片网接口发送短信的实现方法
2017/10/25 PHP
在Laravel 中实现是否关注的示例
2019/10/22 PHP
jQuery 行背景颜色的交替显示(隔行变色)实现代码
2009/12/13 Javascript
textarea 控制输入字符字节数(示例代码)
2013/12/27 Javascript
使用CSS样式position:fixed水平滚动的方法
2014/02/19 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
javascript中的作用域和闭包详解
2016/01/13 Javascript
js监听input输入框值的实时变化实例
2017/01/26 Javascript
详解JS获取HTML DOM元素的8种方法
2017/06/17 Javascript
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
jQuery 1.9版本以上的浏览器判断方法代码分享
2017/08/28 jQuery
微信小程序icon组件使用详解
2018/01/31 Javascript
Angularjs实现数组随机排序的方法
2018/10/02 Javascript
JS中appendChild追加子节点无效的解决方法
2018/10/14 Javascript
详解nodejs 开发企业微信第三方应用入门教程
2019/03/12 NodeJs
[03:49]2016完美“圣”典风云人物:AMS专访
2016/12/06 DOTA
python进阶教程之函数对象(函数也是对象)
2014/08/30 Python
在Django的URLconf中进行函数导入的方法
2015/07/18 Python
Python编程中对文件和存储器的读写示例
2016/01/25 Python
Django中Forms的使用代码解析
2018/02/10 Python
Python3之读取连接过的网络并定位的方法
2018/04/22 Python
Python爬虫使用脚本登录Github并查看信息
2018/07/16 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
纽约香氛品牌:NEST Fragrance
2018/10/15 全球购物
违反学校规定检讨书
2014/01/18 职场文书
写给老师的表扬信
2014/01/21 职场文书
销售团队激励口号
2014/06/06 职场文书
2014年司法局工作总结
2014/12/11 职场文书
建党伟业的观后感
2015/06/01 职场文书
迎新生晚会主持词
2015/06/30 职场文书
《作风建设永远在路上》心得体会
2016/01/21 职场文书
python playwright 自动等待和断言详解
2021/11/27 Python