我有以下字典:dic = {'s': 3, 'a': 2, 'w': 2, 'y': 2, 'x': 2, 'm': 4, 'd': 5}我需要先按 VALUE 對元素進行排序,如果值重復,然后按 KEY 排序,我會得到以下輸出:dic = [('d', 5), ('m', 4), ('s', 3), ('a', 2), ('w', 2), ('x', 2), ('y', 2)]我試過使用這段代碼:sorted(dic.items(), key=lambda x: x[1], reverse=True)但我一直得到相同的輸出(鍵等于 2 的字母不按字母順序排列):[('d', 5), ('m', 4), ('s', 3), ('a', 2), ('w', 2), ('y', 2), ('x', 2)]有誰知道我該如何解決這個問題?
3 回答

蕭十郎
TA貢獻1815條經驗 獲得超13個贊
您可以使用 key 函數對 dict 項進行排序,該函數返回一個 2 元組,其中 dict 項的否定值作為第一項,鍵作為第二項:
sorted(dic.items(), key=lambda t: (-t[1], t[0]))
這將返回:
[('d', 5), ('m', 4), ('s', 3), ('a', 2), ('w', 2), ('x', 2), ('y', 2)]
添加回答
舉報
0/150
提交
取消