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错误处理详解
Sep 28 Python
Python程序中的观察者模式结构编写示例
May 27 Python
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
Nov 24 Python
Python用户推荐系统曼哈顿算法实现完整代码
Dec 01 Python
使用python3+xlrd解析Excel的实例
May 04 Python
Selenium 模拟浏览器动态加载页面的实现方法
May 16 Python
Python根据成绩分析系统浅析
Feb 11 Python
Python中一般处理中文的几种方法
Mar 06 Python
Django 源码WSGI剖析过程详解
Aug 05 Python
解决django同步数据库的时候app models表没有成功创建的问题
Aug 09 Python
python将数据插入数据库的代码分享
Aug 16 Python
Python快速优雅的批量修改Word文档样式
May 20 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自定义函数之递归删除文件及目录
2010/08/08 PHP
关于PHP语言构造器介绍
2013/07/08 PHP
phpmyadmin config.inc.php配置示例
2013/08/27 PHP
PHP中的reflection反射机制测试例子
2014/08/05 PHP
php实现的mongodb操作类实例
2015/04/03 PHP
PHP中的流(streams)浅析
2015/07/02 PHP
如何实现php图片等比例缩放
2015/07/28 PHP
php抽象类和接口知识点整理总结
2019/08/02 PHP
Mac下关于PHP环境和扩展的安装详解
2019/10/17 PHP
PHP实现笛卡尔积算法的实例讲解
2019/12/22 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
jquery下实现overlay遮罩层代码
2010/08/25 Javascript
jquery绑定原理 简单解析与实现代码分享
2011/09/06 Javascript
通过pjax实现无刷新翻页(兼容新版jquery)
2014/01/31 Javascript
jquery实现的鼠标下拉滚动置顶效果
2014/07/24 Javascript
AngularJs 弹出模态框(model)
2016/04/07 Javascript
基于JS实现的随机数字抽签实例
2016/12/08 Javascript
Vue的路由动态重定向和导航守卫实例
2018/03/17 Javascript
Vue.js 中的 v-show 指令及用法详解
2018/11/19 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
2019/10/16 Javascript
如何在Vue中使localStorage具有响应式(思想实验)
2020/07/14 Javascript
jQuery实现鼠标拖动图片功能
2021/03/04 jQuery
python去掉字符串中重复字符的方法
2014/02/27 Python
在Django的URLconf中使用多个视图前缀的方法
2015/07/18 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
2018/06/14 Python
python 解决Windows平台上路径有空格的问题
2020/11/10 Python
使用django自带的user做外键的方法
2020/11/30 Python
Python基于opencv的简单图像轮廓形状识别(全网最简单最少代码)
2021/01/28 Python
css3利用transform变形结合事件完成扇形导航
2020/10/26 HTML / CSS
意大利男装网店:Vrients
2019/05/02 全球购物
英国设计师珠宝网站:Joshua James Jewellery
2020/03/01 全球购物
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/04/11 面试题
敬老院院长事迹材料
2014/05/21 职场文书
五四青年节优秀演讲稿范文
2014/05/28 职场文书
Python用any()函数检查字符串中的字母以及如何使用all()函数
2022/04/14 Python