在字典中排序值Python 3 Highscores

2024-09-29 23:31:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我见过几个类似的问题,但我从来没有得到像导入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()

它不会对值进行排序,以便确定要做什么。哈尔普


Tags: key答案nameinforlinedictordereddict
1条回答
网友
1楼 · 发布于 2024-09-29 23:31:56

如果:

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

相关问题 更多 >

    热门问题