python sort自定义key函数

本文记录了在力扣题目的解决方案中,如何使用Python的`sort`函数结合`key`参数进行自定义排序。通过一个例子解释了如何保持排序稳定性,即相同元素的相对顺序不变。自定义函数`f=lambda x:(0,x)`用于将数字置于字母之前,数字间按大小排序,字母间的相对位置保持不变。这种技巧在处理混合类型列表排序时非常实用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天做力扣T937.重新排列日志文件,看见官解的sort使用key关键字很神奇,故记下来当做笔记。
力扣题目
key关键字自定义函数,根据自定义函数的返回值进行排序。
举列:
将ls[5,‘a’,8,‘z’,‘e’,0,7,‘m’]排序,排序规则所有数字在字母前,数字间按大小排序,子母间相对位置不变。
注:python sort函数的排序是稳定的

#构建排序函数
f = lambda x: (0,x) if type(x)==type(0) else (1,)

上述函数意为当x的类型是数字型时,返回(0,x),否则则返回(1,)。
python中对元组比大小时先比较第一个元素,若相同则向后继续比较。故以自定义函数f进行排序时,先比较返回的第一个元素(0或1),将所有数字元素前置,字母元素后置。如果是数字元素再按返回元组第二个元素排序,进行数字键排序;若为字母,由于排序稳定,相对位置不变。

ls = ls.sort(key=f)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值