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

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

根據其他字典的值對字典的值進行排序

根據其他字典的值對字典的值進行排序

絕地無雙 2024-01-15 21:41:58
我有一本看起來像這樣的字典..results = {'agunii2035': ['agunii3007', 'agunii2006', 'agunii2003', 'agunii3000'], 'agunii3007': ['agunii2035', 'agunii2006', 'agunii2003', 'agunii3000'], 'agunii2006': ['agunii2035', 'agunii3007', 'agunii2003', 'agunii3000'], 'agunii2003': ['agunii2035', 'agunii3007', 'agunii2006', 'agunii3000'], 'agunii3000': ['agunii2035', 'agunii3007', 'agunii2006', 'agunii2003']}我還有另一本字典,有這樣的分數。score ={'agunii2035': [4, 4, 1, 3], 'agunii3007': [4, 3, 3, 1], 'agunii2006': [4, 3, 2, 2], 'agunii2003': [1, 3, 2, 1], 'agunii3000': [3, 1, 2, 1]}我想根據“分數”字典的值對“結果”字典的值進行排序。例如,對于鍵“agunii2035”,分數字典具有值 [ 4,4,1,3]。因此,我想對“結果”字典的值進行排序,以使用相同的鍵而['agunii3007', 'agunii2006', 'agunii3000','agunii2003']不是 ['agunii3007', 'agunii2006', 'agunii2003', 'agunii3000']。
查看完整描述

2 回答

?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

results = {'agunii2035': ['agunii3007', 'agunii2006', 'agunii2003', 'agunii3000'],

 'agunii3007': ['agunii2035', 'agunii2006', 'agunii2003', 'agunii3000'],

 'agunii2006': ['agunii2035', 'agunii3007', 'agunii2003', 'agunii3000'],

 'agunii2003': ['agunii2035', 'agunii3007', 'agunii2006', 'agunii3000'],

 'agunii3000': ['agunii2035', 'agunii3007', 'agunii2006', 'agunii2003']}


score = {'agunii2035': [4, 4, 1, 3],

 'agunii3007': [4, 3, 3, 1],

 'agunii2006': [4, 3, 2, 2],

 'agunii2003': [1, 3, 2, 1],

 'agunii3000': [3, 1, 2, 1]}


ordered_results = {key:[item for _, item in

                   sorted(zip(score.get(key), value), reverse=True)]

                   for key, value in results.items()}


print(ordered_results)

輸出


{'agunii2035': ['agunii3007', 'agunii2006', 'agunii3000', 'agunii2003'],

'agunii3007': ['agunii2035', 'agunii2006', 'agunii2003', 'agunii3000'],

'agunii2006': ['agunii2035', 'agunii3007', 'agunii3000', 'agunii2003'],

'agunii2003': ['agunii3007', 'agunii2006', 'agunii3000', 'agunii2035'],

'agunii3000': ['agunii2035', 'agunii2006', 'agunii3007', 'agunii2003']}


查看完整回答
反對 回復 2024-01-15
?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

您需要做的就是使用從分數中查找字典的值作為對這樣的結果進行排序的鍵。這是可行的,因為默認排序算法可以使用列表作為排序依據。key: values然后,它使用字典理解從排序列表中構建一個新字典。


results = {

    'agunii2035': ['agunii3007', 'agunii2006', 'agunii2003', 'agunii3000'],

    'agunii3007': ['agunii2035', 'agunii2006', 'agunii2003', 'agunii3000'],

    'agunii2006': ['agunii2035', 'agunii3007', 'agunii2003', 'agunii3000'],

    'agunii2003': ['agunii2035', 'agunii3007', 'agunii2006', 'agunii3000'],

    'agunii3000': ['agunii2035', 'agunii3007', 'agunii2006', 'agunii2003']

}


score = {

    'agunii2035': [4, 4, 1, 3],

    'agunii3007': [4, 3, 3, 1],

    'agunii2006': [4, 3, 2, 2],

    'agunii2003': [1, 3, 2, 1],

    'agunii3000': [3, 1, 2, 1]

}


sorted_results = {

    k: v

    for k, v

    in sorted(results.items(), key=lambda item: score[item[0]])

}


print(sorted_results)

# {'agunii2003': ['agunii2035', 'agunii3007', 'agunii2006', 'agunii3000'], 'agunii3000': ['agunii2035', 'agunii3007', 'agunii2006', 'agunii2003'], 'agunii2006': ['agunii2035', 'agunii3007', 'agunii2003', 'agunii3000'], 'agunii3007': ['agunii2035', 'agunii2006', 'agunii2003', 'agunii3000'], 'agunii2035': ['agunii3007', 'agunii2006', 'agunii2003', 'agunii3000']}



查看完整回答
反對 回復 2024-01-15
  • 2 回答
  • 0 關注
  • 110 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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