对python3 sort sorted 函数的应用详解

作者:u010069176 时间:2022-08-01 23:44:45 

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

标签:python3,sort,sorted
0
投稿

猜你喜欢

  • java模拟ATM功能(控制台连接Mysql数据库)

    2024-01-22 16:54:46
  • MySql节点管理安装步骤

    2010-10-14 14:13:00
  • FCKeditor新版本发布,并更名为CKeditor

    2009-09-08 13:09:00
  • JS+HTML5 canvas绘制验证码示例

    2023-07-19 11:23:53
  • Dreamweaver制作网页实用七小招

    2009-05-29 18:36:00
  • JSP 获取spring容器中bean的两种方法总结

    2023-06-15 07:27:46
  • java连接mysql数据库详细步骤解析

    2024-01-19 15:55:25
  • 定位?浮动?自适应?

    2008-06-30 14:20:00
  • 简单了解python列表和元组的区别

    2022-02-11 17:14:43
  • 深入解析JavaScript的闭包机制

    2024-04-18 10:32:45
  • Spring Boot整合 NoSQL 数据库 Redis详解

    2024-01-29 18:16:36
  • Python自定义主从分布式架构实例分析

    2022-09-24 01:28:29
  • Linux环境下安装MySQL8.0的完整步骤

    2024-01-22 05:26:47
  • 解决pip install 卡住不动的问题

    2021-06-16 16:25:13
  • JavaScript体验异步更好的解决办法

    2024-05-29 22:11:56
  • python学习之panda数据分析核心支持库

    2023-11-04 17:39:29
  • Python 用NumPy创建二维数组的案例

    2021-11-23 22:27:48
  • mysql alter语句用法实例

    2024-01-25 12:32:53
  • Python使用Flask Migrate模块迁移数据库

    2023-08-10 09:17:30
  • 对Python+opencv将图片生成视频的实例详解

    2022-01-03 08:42:16
  • asp之家 网络编程 m.aspxhome.com