亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Sorted() 方法在 lambda 中使用元組,但方向不同(升序、降序)

Sorted() 方法在 lambda 中使用元組,但方向不同(升序、降序)

慕工程0101907 2023-12-05 15:03:38
例如我有一本字典:a = {'B': 2674, 'C': 2000, 'A': 2674}我需要按值降序對它進行排序。但是,當值相等時,則按鍵按字母順序升序。輸出帶有鍵的列表。b = sorted(a, key=lambda d: (d[1], d[0]))有沒有辦法單獨設置反向?
查看完整描述

2 回答

?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

對于數值,您可以使用 key 函數通過簡單地對值取反來實現這兩個排序標準。然后使用推導式僅提取鍵:

b = [k for k, _ in sorted(a.items(), key=lambda i: (-i[1], i[0]))]
# ['A', 'B', 'C']


查看完整回答
反對 回復 2023-12-05
?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

來自文檔

s?=?sorted(a,?key=lambda?d:?d[1])?#?sort?on?secondary?key
sorted(s,?key=lambda?d:?d[0],?reverse=True)?#?now?sort?on?primary?key,?descending

這就是它本來應該做的方式

Python 中使用的 Timsort 算法可以有效地進行多種排序,因為它可以利用數據集中已經存在的任何排序。


查看完整回答
反對 回復 2023-12-05
  • 2 回答
  • 0 關注
  • 195 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號