python sort自定义key函数

python sort自定义key函数,第1张

今天做力扣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)

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/799435.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-06
下一篇2022-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存