引言
假如有一個(gè)元組震檩,
ls=[(1,2),(2,2),(5,4),(5,3),(8,4)]
- 如果對此元組進(jìn)行排序摄闸,要求是按第一個(gè)元素升序禁漓,如果第一個(gè)元素相同,按第二個(gè)元素的升序排列
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)]
- 如果對此元組進(jìn)行排序,要求是按第一個(gè)元素升序说墨,如果第一個(gè)元素相同骏全,按第二個(gè)元素的降序排列
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)]
如果有多個(gè)條件怎么寫呢?
只需要在寫上多個(gè)條件就可以了尼斧,形如lambda x:(x[0],x[1],……,x[n])
原理解析
python的排序算法是歸并排序姜贡,而歸并排序是穩(wěn)定排序(直白點(diǎn)說,如果兩個(gè)元素比較不出大小棺棵,那么這兩個(gè)元素的位置是保持不變的)楼咳。
力扣題目
692.前K個(gè)高頻單詞