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对配置文件.ini进行增删改查操作的方法示例
Jul 28 Python
python 查找文件名包含指定字符串的方法
Jun 05 Python
python实现简单登陆系统
Oct 18 Python
如何用Python制作微信好友个性签名词云图
Jun 28 Python
将Pytorch模型从CPU转换成GPU的实现方法
Aug 19 Python
PyTorch实现ResNet50、ResNet101和ResNet152示例
Jan 14 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
Mar 02 Python
python:删除离群值操作(每一行为一类数据)
Jun 08 Python
Python调用shell cmd方法代码示例解析
Jun 18 Python
Selenium 安装和简单使用的实现
Dec 04 Python
python常量折叠基础知识点讲解
Feb 28 Python
tensorboard 可视化之localhost:6006不显示的解决方案
May 22 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
关于时间计算的结总
2006/12/06 PHP
PHP 验证码的实现代码
2011/07/17 PHP
详解php与ethereum客户端交互
2018/04/28 PHP
用javascript编写的第一人称射击游戏
2007/02/25 Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
2014/06/07 Javascript
浅谈jquery回调函数callback的使用
2015/01/30 Javascript
jQuery实现的经典滑动门效果
2015/09/22 Javascript
JavaScript中日期的相关操作方法总结
2015/10/24 Javascript
jQuery 调用WebService 实例讲解
2016/06/28 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
VSCode搭建React Native环境
2020/05/07 Javascript
如何在Vue中使localStorage具有响应式(思想实验)
2020/07/14 Javascript
解决vant-UI库修改样式无效的问题
2020/11/03 Javascript
vue中使用echarts的示例
2021/01/03 Vue.js
使用node-media-server搭建一个简易的流媒体服务器
2021/01/20 Javascript
[05:26]TI10典藏宝瓶套装外观展示
2020/07/03 DOTA
简单介绍Python中的len()函数的使用
2015/04/07 Python
Python函数式编程指南(三):迭代器详解
2015/06/24 Python
利用python实现数据分析
2017/01/11 Python
Python实现矩阵加法和乘法的方法分析
2017/12/19 Python
virtualenv 指定 python 解释器的版本方法
2018/10/25 Python
树莓派动作捕捉抓拍存储图像脚本
2019/06/22 Python
Python阶乘求和的代码详解
2020/02/14 Python
如何在Python3中使用telnetlib模块连接网络设备
2020/09/21 Python
python3代码中实现加法重载的实例
2020/12/03 Python
python 基于Apscheduler实现定时任务
2020/12/15 Python
开普敦通行证:Cape Town Pass
2019/07/18 全球购物
外科实习自我鉴定
2013/10/06 职场文书
学校安全工作制度
2014/01/19 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
小学教师求职信范文
2015/03/20 职场文书
公司行政管理制度范本
2015/08/05 职场文书
MySQL中你可能忽略的COLLATION实例详解
2021/05/12 MySQL
java多态注意项小结
2021/10/16 Java/Android
Python几种酷炫的进度条的方式
2022/04/11 Python
Redis入门基础常用操作命令整理
2022/06/01 Redis