我在每個字典鍵的串列中有 2 個值,需要對 value1 上的字典 desc 和 value2 上的 asc 進行排序:
dict1={'123126':[100,'DDD'],'123121':[100,'AAA'],'123122':[100,'BBB'],'123123':[101,'CCC']}
dict2 = {key: val for key,val in sorted(dict1.items(), key = lambda ele: ((ele[1][0]),(ele[1][1])), reverse = True)}
print(dict2)
output >>
{'123123': [101, 'CCC'], '123126': [100, 'DDD'], '123122': [100, 'BBB'], '123121': [100, 'AAA']}
但預期的輸出是
{'123123': [101, 'CCC'], '123126': [100, 'AAA'], '123122': [100, 'BBB'], '123121': [100, 'DDD']}
uj5u.com熱心網友回復:
只呼叫降序。自然,排序是升序的。所以沒有必要使用它。因此你可以這樣做:
dict(sorted(d.items(),key= lambda x:-x[1][0]))
Out[25]:
{'123123': [101, 'CCC'],
'123126': [100, 'AAA'],
'123122': [100, 'BBB'],
'123121': [100, 'DDD']}
uj5u.com熱心網友回復:
我解決了使用下面的問題,盡管我希望這可以在一個陳述句中完成。
dict1={'123126':[100,'DDD'],'123121':[100,'AAA'],'123122':[100,'BBB'],'123123':[101,'CCC']}
dict2 = {key: val for key,val in sorted(dict1.items(), key = lambda ele: ele[1][1], reverse = False)}
dict3 = {key: val for key,val in sorted(dict2.items(), key = lambda ele: ele[1][0], reverse = True)}
print(dict2)
print(dict3)
輸出
{'123121': [100, 'AAA'], '123122': [100, 'BBB'], '123123': [101, 'CCC'], '123126': [100, 'DDD']}
Expeceted- dict3
{'123123': [101, 'CCC'], '123121': [100, 'AAA'], '123122': [100, 'BBB'], '123126': [100, 'DDD']}
uj5u.com熱心網友回復:
謝謝,下面這個解決了 dict4 = {key: val for key,val in sorted(dict1.items(), key = lambda ele: (-ele[1][0],ele[1][1]), reverse = 錯誤)}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/363169.html
上一篇:使用函式和引數創建字典的問題
