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学习笔记(一)(基础入门之环境搭建)
Jun 05 Python
Python使用matplotlib绘制动画的方法
May 20 Python
Python用list或dict字段模式读取文件的方法
Jan 10 Python
利用PyInstaller将python程序.py转为.exe的方法详解
May 03 Python
python代码实现ID3决策树算法
Dec 20 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
Dec 18 Python
解决Django加载静态资源失败的问题
Jul 28 Python
Python实现TCP通信的示例代码
Sep 09 Python
numpy ndarray 取出满足特定条件的某些行实例
Dec 05 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
Jun 10 Python
Python通过fnmatch模块实现文件名匹配
Sep 30 Python
python实战之用emoji表情生成文字
May 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
PHP实现MVC开发得最简单的方法――模型
2007/04/10 PHP
php self,$this,const,static,->的使用
2009/10/22 PHP
PHP 抓取网页图片并且另存为的实现代码
2010/03/24 PHP
删除html标签得到纯文本可处理嵌套的标签
2014/04/28 PHP
探寻PHP脚本不报错的原因
2014/06/12 PHP
php格式输出文件var_export函数实例
2014/11/15 PHP
javascript options属性集合操作代码
2009/12/28 Javascript
jquery多选项卡效果实例代码(附效果图)
2013/03/23 Javascript
javascript间隔刷新的简单实例
2013/11/14 Javascript
JavaScript对象反射用法实例
2015/04/17 Javascript
jquery实现简单的表单验证
2015/11/17 Javascript
js console.log打印对像与数组用法详解
2016/01/21 Javascript
第一次动手实现bootstrap table分页效果
2016/09/22 Javascript
Vue.js中用v-bind绑定class的注意事项
2016/12/13 Javascript
如何在Angular2中使用jQuery及其插件的方法
2017/02/09 Javascript
js实现功能比较全面的全选和多选
2017/03/02 Javascript
jQuery手风琴的简单制作
2017/05/12 jQuery
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
webpack打包js文件及部署的实现方法
2017/12/18 Javascript
vue将时间戳转换成自定义时间格式的方法
2018/03/02 Javascript
JS实现的集合去重,交集,并集,差集功能示例
2018/03/13 Javascript
vue异步axios获取的数据渲染到页面的方法
2018/08/09 Javascript
详解JavaScript中操作符和表达式
2018/09/12 Javascript
Jquery ajax书写方法代码实例解析
2020/06/12 jQuery
python 文件与目录操作
2008/12/24 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
2020/03/03 Python
Python 找出英文单词列表(list)中最长单词链
2020/12/14 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
2021/01/29 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
美国中小型企业领先的办公家具供应商:Office Designs
2016/11/26 全球购物
阿联酋航空官方网站:Emirates
2017/10/17 全球购物
美国最流行的男士时尚网站:Touch of Modern
2018/02/05 全球购物
学长教您写论文:经验总结
2019/07/09 职场文书
2019年恭贺升学祝福语集锦
2019/08/15 职场文书
MySQL外键约束(Foreign Key)案例详解
2022/06/28 MySQL
python playwrigh框架入门安装使用
2022/07/23 Python