2015-05-25 53 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