美文网首页
python多条件排序

python多条件排序

作者: wanzhouyi | 来源:发表于2021-05-20 01:02 被阅读0次

引言

假如有一个元组,
ls=[(1,2),(2,2),(5,4),(5,3),(8,4)]

  1. 如果对此元组进行排序,要求是按第一个元素升序,如果第一个元素相同,按第二个元素的升序排列
ls=[(1,2),(2,2),(5,4),(5,3),(8,4)]
ls.sort(key=lambda x:(x[0],x[1]))
print(ls) #[(1, 2), (2, 2), (5, 3), (5, 4), (8, 4)]
  1. 如果对此元组进行排序,要求是按第一个元素升序,如果第一个元素相同,按第二个元素的降序排列
ls=[(1,2),(2,2),(5,4),(5,3),(8,4)]
ls.sort(key=lambda x:(x[0],-x[1]))
print(ls) #[(1, 2), (2, 2), (5, 4), (5, 3), (8, 4)]

如果有多个条件怎么写呢?
只需要在写上多个条件就可以了,形如lambda x:(x[0],x[1],……,x[n])

原理解析

python的排序算法是归并排序,而归并排序是稳定排序(直白点说,如果两个元素比较不出大小,那么这两个元素的位置是保持不变的)。

力扣题目

692.前K个高频单词

相关文章

网友评论

      本文标题:python多条件排序

      本文链接:https://www.haomeiwen.com/subject/omtvjltx.html