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中使用pyhook实现键盘监控的例子
Jul 18 Python
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
Apr 05 Python
Python selenium 父子、兄弟、相邻节点定位方式详解
Sep 15 Python
python爬虫_自动获取seebug的poc实例
Aug 05 Python
python2.7 json 转换日期的处理的示例
Mar 07 Python
Python定义一个跨越多行的字符串的多种方法小结
Jul 19 Python
详解Python是如何实现issubclass的
Jul 24 Python
Python全局锁中如何合理运用多线程(多进程)
Nov 06 Python
Python调用Windows API函数编写录音机和音乐播放器功能
Jan 05 Python
Python字符串中删除特定字符的方法
Jan 15 Python
python代码实现将列表中重复元素之间的内容全部滤除
May 22 Python
如何用Python编写一个电子考勤系统
Feb 08 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
ThinkPHP之foreach标签使用概述
2014/06/30 PHP
PHP调用wsdl文件类型的接口代码分享
2014/11/19 PHP
支付宝服务窗API接口开发php版本
2016/07/20 PHP
详解Yii2.0使用AR联表查询实例
2017/06/16 PHP
PHP simplexml_import_dom()函数讲解
2019/02/03 PHP
PHP 观察者模式深入理解与应用分析
2019/09/25 PHP
数据结构之利用PHP实现二分搜索树
2020/10/25 PHP
深入理解PHP+Mysql分布式事务与解决方案
2020/12/03 PHP
复制js对象方法(详解)
2013/07/08 Javascript
js post提交调用方法
2014/02/12 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
四种参数传递的形式——URL,超链接,js,form表单
2015/07/24 Javascript
Prototype框架详解
2015/11/25 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
jQuery中通过ajax调用webservice传递数组参数的问题实例详解
2016/05/20 Javascript
让编辑器支持word复制黏贴、截屏的js代码
2016/10/17 Javascript
JavaScript版经典游戏之扫雷游戏完整示例【附demo源码下载】
2016/12/12 Javascript
JavaScript 实现 Tab 点击切换实例代码
2017/03/25 Javascript
基于Vue.js实现tab滑块效果
2017/07/23 Javascript
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
2017/09/19 Javascript
详解VueJS应用中管理用户权限
2018/02/02 Javascript
JavaScript异步加载问题总结
2018/02/17 Javascript
解决新建一个vue项目过程中遇到的问题
2020/10/22 Javascript
python 多线程串行和并行的实例
2019/02/22 Python
python sqlite的Row对象操作示例
2019/09/11 Python
Django实现分页显示效果
2019/10/31 Python
Django choices下拉列表绑定实例
2020/03/13 Python
给Django Admin添加验证码和多次登录尝试限制的实现
2020/07/26 Python
scrapy结合selenium解析动态页面的实现
2020/09/28 Python
库房主管岗位职责
2013/12/31 职场文书
作文评语大全
2014/04/23 职场文书
人力资源管理专业自荐书
2014/07/07 职场文书
2014个人年度工作总结
2014/12/15 职场文书
先进党员事迹材料
2014/12/24 职场文书
2016学雷锋优秀志愿者事迹材料
2016/02/25 职场文书
Win10 Anaconda安装python-pcl
2022/04/29 Servers