2 回答

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
Python 的排序函數(shù)是穩(wěn)定的,這意味著如果兩個(gè)元素比較相等,它們的相對位置不會(huì)改變。元素只有在比較不相等時(shí)才會(huì)切換位置。
此外,排序需要一個(gè)可選key參數(shù),該參數(shù)是一個(gè)確定排序應(yīng)該比較哪些值的函數(shù)。您可以為此定義一個(gè)完整的函數(shù),但如果您只打算使用一次,則通常定義一個(gè)簡短的 lambda 函數(shù)。
將它們放在一起,您可以先按列表的第二個(gè)元素對列表進(jìn)行排序,然后再按第一個(gè)元素對它們進(jìn)行第二次排序。第一次排序的相對位置將在第二次排序之后保持。
a = [
['abc', 5],
['abd', 21],
['abb', 10],
['abc', 3],
['abb', 15],
['abd', 20]
]
# Sort by second element first, in descending order
a = sorted(a, key=lambda x: x[1], reverse=True)
# Then sort by first element, in ascending order
a = sorted(a, key=lambda x: x[0])
print(a) # [['abb', 15], ['abb', 10], ['abc', 5], ['abc', 3], ['abd', 21], ['abd', 20]]

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊
添加回答
舉報(bào)