引言
假如有一个元组,
ls=[(1,2),(2,2),(5,4),(5,3),(8,4)]
- 如果对此元组进行排序,要求是按第一个元素升序,如果第一个元素相同,按第二个元素的升序排列
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)]
- 如果对此元组进行排序,要求是按第一个元素升序,如果第一个元素相同,按第二个元素的降序排列
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个高频单词