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 获取本机ip地址的两个方法
Feb 25 Python
Python实现Linux命令xxd -i功能
Mar 06 Python
Python爬虫爬验证码实现功能详解
Apr 14 Python
Python正则表达式如何进行字符串替换实例
Dec 28 Python
Python算法输出1-9数组形成的结果为100的所有运算式
Nov 03 Python
numpy中实现二维数组按照某列、某行排序的方法
Apr 04 Python
详解Python网络框架Django和Scrapy安装指南
Apr 01 Python
Django框架视图介绍与使用详解
Jul 18 Python
一行python实现树形结构的方法
Aug 09 Python
Django ORM 自定义 char 类型字段解析
Aug 09 Python
在Python3 numpy中mean和average的区别详解
Aug 24 Python
浅谈Python中threading join和setDaemon用法及区别说明
May 02 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实现的功能是显示8条基色色带
2006/10/09 PHP
PHP中的reflection反射机制测试例子
2014/08/05 PHP
JS模拟多线程
2007/02/07 Javascript
精解window.setTimeout()&window.setInterval()使用方式与参数传递问题!
2007/11/23 Javascript
jQuery Study Notes学习笔记 (二)
2010/08/04 Javascript
Jquery Ajax请求代码(2)
2011/01/07 Javascript
Javascript变量函数浅析
2011/09/02 Javascript
JS应用正则表达式转换大小写示例
2014/09/18 Javascript
jQuery实现瀑布流的取巧做法分享
2015/01/12 Javascript
JavaScript如何实现组合列表框中元素移动效果
2016/03/01 Javascript
JavaScript  cookie 跨域访问之广告推广
2016/04/20 Javascript
javascript正则表达式之分组概念与用法实例
2016/06/16 Javascript
jQuery组件easyui对话框实现代码
2016/08/25 Javascript
js自定义Tab选项卡效果
2017/06/05 Javascript
Vue-cli项目获取本地json文件数据的实例
2018/03/07 Javascript
bing Map 在vue项目中的使用详解
2018/04/09 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
2018/05/03 Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
2018/09/12 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
2020/04/14 Javascript
vue实现导航菜单和编辑文本的示例代码
2020/07/04 Javascript
Vue记住滚动条和实现下拉加载的完美方法
2020/07/31 Javascript
Python实现备份文件实例
2014/09/16 Python
python绘制铅球的运行轨迹代码分享
2017/11/14 Python
对Python定时任务的启动和停止方法详解
2019/02/19 Python
python批量修改图片尺寸,并保存指定路径的实现方法
2019/07/04 Python
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
详解HTML5布局和HTML5标签
2020/10/26 HTML / CSS
英国一家集合了众多有才华设计师品牌的奢侈店:Wolf & Badger
2018/04/18 全球购物
北美最大的参茸药食商城:德成行
2020/12/06 全球购物
用你熟悉的语言写一个连接ORACLE数据库的程序,能够完成修改和查询工作
2012/06/11 面试题
青年创业培训欢迎词
2014/01/08 职场文书
婚礼女方父母答谢词
2015/01/04 职场文书
黄石寨导游词
2015/02/05 职场文书
2015中学学校工作总结
2015/07/20 职场文书
使用redis实现延迟通知功能(Redis过期键通知)
2021/09/04 Redis
Java 超详细讲解设计模式之中的抽象工厂模式
2022/03/25 Java/Android