对python3 sort sorted 函数的应用详解
作者:u010069176 发布时间:2022-08-01 23:44:45
标签:python3,sort,sorted
python3 sorted取消了对cmp的支持。
python3 帮助文档:
sorted(iterable,key=None,reverse=False)
key接受一个函数,这个函数只接受一个元素,默认为None
reverse是一个布尔值。如果设置为True,列表元素将被倒序排列,默认为False
着重介绍key的作用原理:
key指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None 。
例1:
students = [('john', 'A', 15), ('jane', 'B', 12), ('dave','B', 10)]
sorted(students,key=lambda s: x[2]) #按照年龄来排序
结果:[('dave','B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
例2:这是一个字符串排序,排序规则:小写<大写<奇数<偶数
s = 'asdf234GDSdsf23' #排序:小写-大写-奇数-偶数
print("".join(sorted(s, key=lambda x: (x.isdigit(),x.isdigit() and int(x) % 2 == 0,x.isupper(),x))))
原理:先比较元组的第一个值,FALSE<TRUE,如果相等就比较元组的下一个值,以此类推。
先看一下Boolean value 的排序:
print(sorted([True,Flase]))===>结果[False,True]
Boolean 的排序会将 False 排在前,True排在后 .
1.x.isdigit()的作用是把数字放在前边,字母放在后边.
2.x.isdigit() and int(x) % 2 == 0的作用是保证奇数在前,偶数在后。
3.x.isupper()的作用是在前面基础上,保证字母小写在前大写在后.
4.最后的x表示在前面基础上,对所有类别数字或字母排序。
最后结果:addffssDGS33224
例3:一到面试题:
list1=[7, -8, 5, 4, 0, -2, -5]
#要求1.正数在前负数在后 2.整数从小到大 3.负数从大到小
sorted(list1,key=lambda x:(x<0,abs(x)))
解题思路:先按照正负排先后,再按照大小排先后。
来源:https://blog.csdn.net/u010069176/article/details/51901561


猜你喜欢
- 本篇博文主要讲解Python爬虫实例,重点包括爬虫技术架构,组成爬虫的关键模块:URL管理器、HTML下载器和HTML解析器。爬虫简单架构程
- 转自微信公众号:机器学习社区,经作者授权转载时间序列分析是数据科学中一个非常重要的领域,它主要包含统计分析、检测变化点、异常检测和预测未来趋
- 本文实例讲述了Python3删除排序数组中重复项的方法。分享给大家供大家参考,具体如下:给定一个排序数组,你需要在[原地]删除重复出现的元素
- 从一个 Demo 入手为了快速进入状态,我们先搞一个 Demo,当然这个 Demo 是参考 Go 源码 src/net/rpc/s
- 还原一个数据库:mysql -h localhost -u root -p123456 www<c:\www.sql 备份一个数据库:
- 本文实例为大家分享了js实现页面图片消除的具体代码,供大家参考,具体内容如下前两天测试的时候发现自己对js还不是太熟悉,所以今天上传的了这篇
- 在利用QT编写GUI程序时经常需要一些交互操作,常见的有鼠标事件、键盘事件等。今天我们要实现的是在label中已经显示的图像中绘制矩形框,以
- pip install *** :Cannot connect to proxy在使用pip install 安装任何新的包都会出现下面错误
- 概述本文主要介绍一种降维方法,PCA(Principal Component Analysis,主成分分析)。降维致力于解决三类问题。1.
- python导出chrome书签到markdown文件,主要就是解析chrome的bookmarks文件,然后拼接成markdown格式的字
- 详解 Python中LEGB和闭包及装饰器LEGB L>E>G?BL:local函数内部作用域E:enclosing函数内部与内
- 本文已经收录于最新版的 《PyCharm中文指南》更多 PyCharm 使用技巧,可前往在线文档学习:《PyCharm 中文指南》2.0 在
- pytest概述pytest是一个非常成熟的全功能的Python测试框架,主要特点有以下几点:1、简单灵活,容易上手,文档丰富;2、支持参数
- 就目前互联网上大小网站而言,大部分都是采用ASP+ACCESS/SQL Server或者PHP+MySQL来编写;事实上,ASP和MySQL
- 前言本文主要介绍通过Python提取csv文件中数据,并对数据进行处理。编译器:Anaconda3 语言:Python3一、使用pandas
- 本文实例讲述了python实现将英文单词表示的数字转换成阿拉伯数字的方法。分享给大家供大家参考。具体实现方法如下:import re_kno
- 使用mysql主从复制的好处有:1、采用主从服务器这种架构,稳定性得以提升。如果主服务器发生故障,我们可以使用从服务器来提供服务。2、在主从
- github是一个项目的存储仓库,使用的时候非常的方便,下面就介绍一下管理 github 仓库的软件安装,windows 下的 git 安装
- 字典的添加与修改# coding:utf-8if __name__ == '__main__':
- 请看下面的操作图解。1.使用Sql Server Management Studio 2008 连接数据库。2.选中要导出数据的数据库节点,