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 相关文章推荐
pyramid配置session的方法教程
Nov 27 Python
Python中用PIL库批量给图片加上序号的教程
May 06 Python
Python中super()函数简介及用法分享
Jul 11 Python
Python中字典的setdefault()方法教程
Feb 07 Python
python logging日志模块以及多进程日志详解
Apr 18 Python
Python脚本操作Excel实现批量替换功能
Nov 20 Python
如何使用python传入不确定个数参数
Feb 18 Python
Python换行与不换行的输出实例
Feb 19 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
Apr 14 Python
django正续或者倒序查库实例
May 19 Python
Python Pandas数据分析工具用法实例
Nov 05 Python
用python爬虫批量下载pdf的实现
Dec 01 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上传、管理照片示例
2006/10/09 PHP
php在程序中将网页生成word文档并提供下载的代码
2012/10/09 PHP
Yii中CGridView关联表搜索排序方法实例详解
2014/12/03 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
PHP设计模式之模板方法模式实例浅析
2018/12/20 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
为开发者准备的10款最好的jQuery日历插件
2014/02/04 Javascript
iframe子页面与父页面在同域或不同域下的js通信
2014/05/07 Javascript
node.js中的fs.readlink方法使用说明
2014/12/17 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
2015/06/25 Javascript
JavaScript 经典实例日常收集整理(常用经典)
2016/03/30 Javascript
JavaScript关于提高网站性能的几点建议(一)
2016/07/24 Javascript
判断数组的最佳方法(推荐)
2016/10/11 Javascript
nodejs 搭建简易服务器的图文教程(推荐)
2017/07/18 NodeJs
帝国cms首页列表页实现点赞功能
2017/10/30 Javascript
node下使用UglifyJS压缩合并JS文件的方法
2018/03/07 Javascript
Vue脚手架的简单使用实例
2018/07/10 Javascript
写gulp遇到的ES6问题详解
2018/12/03 Javascript
初学node.js中实现删除用户路由
2019/05/27 Javascript
Jquery 获取相同NAME 或者id删除行操作
2020/08/24 jQuery
vue通过接口直接下载java生成好的Excel表格案例
2020/10/26 Javascript
Python正则抓取网易新闻的方法示例
2017/04/21 Python
使用Python正则表达式操作文本数据的方法
2019/05/14 Python
使用matplotlib动态刷新指定曲线实例
2020/04/23 Python
详解Python模块化编程与装饰器
2021/01/16 Python
python包的导入方式总结
2021/03/02 Python
Html5让容器充满屏幕高度或自适应剩余高度的布局实现
2020/05/14 HTML / CSS
澳大利亚首屈一指的在线购物目的地:Kogan.com
2017/02/02 全球购物
护士自荐信怎么写
2013/10/18 职场文书
财务会计应届生求职信
2013/11/24 职场文书
园林施工员岗位职责
2013/12/11 职场文书
知识竞赛主持词
2014/03/26 职场文书
医院标语大全
2014/06/23 职场文书
2015年上半年计生工作总结
2015/03/30 职场文书
茶花女读书笔记
2015/06/29 职场文书