我有以下串列字典
d = {
'k1':['EKAD', 444.2089, 121],
'k2':['EKADD', 559.2358, 121],
'k3':['KADDLG', 600.2988, 122],
'k4':['ADDLGKG', 657.3202, 123]}
我希望先按字串value[2]的長度value[0]和相反的順序對鍵進行排序,即輸出將是k2、k1、k3、k4。
uj5u.com熱心網友回復:
sorted(d, key=lambda x: (d[x][2], -len(d[x][0])))
解釋:
對字典的迭代回傳鍵。因此,sorted(d, ...)將回傳按key條件排序的鍵
keylambda 生成將用于排序比較的元組。元組使用第一個元素進行比較,然后是第二個,等等。如果使用元組作為鍵,它將使用第一個元素 ( x[2]),然后是第二個(第一個字串的長度)等進行排序。
要反轉長度的順序,而不是數值的順序,長度被取反
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/451087.html
