2017-04-11 76 views
0

字典我有下面的代碼庫:排序基於多個PARAMS

import operator 
scores = {} 
scores[3000] = 18 
scores[2000] = 18 
scores[1000] = 17 

sorted_scores = sorted(scores.items(), key=operator.itemgetter(1),reverse=True) 
print (sorted_scores) 

這將基於該值的字典得分排序。現在,如果我想根據關鍵字對結果sorted_scores列表進行排序,但這次按升序排列。

換句話說我期待的輸出是這樣的: [(2000年,18),(3000,18),(1000,17)]

因此,這是通過值降序排列但由於2000和3000具有相同的值,因此按升序排序。

這可以通過某種方式實現嗎?

在此先感謝。

+0

的可能的複製(http://stackoverflow.com/questions/4233476/sort-a-名單按多重屬性) – m0nhawk

回答

0

你可以只使用雙sorted,不同key:?排序由多個屬性列表]

sorted(sorted(scores.items(), key=operator.itemgetter(0)), key=operator.itemgetter(1),reverse=True) 
# [(2000, 18), (3000, 18), (1000, 17)]