2015-05-25 50 views
1

我已經看過一些類似的問題,但我從來沒有真正得到這些問題的答案就像進口OrderedDict,或該排序值 - 榜

genexp = ((name, dictScore[name]) for name in sorted(dictScore, key=dictScore.get, reverse=True)) 
     for k, v in genexp: 
      print(k, v) 

所以

我正在做一種瑣事遊戲,記錄玩家的分數,並且我想將它們以降序存儲在一個文件中。所以,當我打印出來的高分顯示前1到n

這裏是我的代碼

scoreReader = open("highscore.csv","r") 
for line in scoreReader: 
    line = line[0:-1] 
    name, score = line.split(",") 
    dictScore[Snumber] = {name: score} 
    Snumber = Snumber+1 

print(dictScore) 
sorted_dict = sorted(dictScore.items(), key=operator.itemgetter(1)) 
print(sorted_dict) 
scoreReader.close() 

並不值進行排序,以便IDK的做什麼。 HALP

+1

行'line = line [0:-1]'沒有做任何事情,只是你知道。它只是將'line'設置爲等於它自己。 – IanAuld

回答

3

如果:

d = {'Ian': 10, 'Dan': 8, 'Joe': 15} 

然後

>>> sorted(d.items(), reverse=True, key=lambda x: x[1]) 
[('Joe', 15), ('Ian', 10), ('Dan', 8)] 

我不知道什麼是operator在你的代碼,但是這將實現你想要的。你可以閱讀更多關於他們key參數和排序here