python - 在字典中保留重复键的最高值

标签 python python-3.x dictionary merge duplicates

对于学校,我正在为游戏的排行榜编写一个小程序。 我为此使用了字典,玩家的名字作为键名,分数作为键值。 将有 10 场比赛,每场比赛都会有一个自动排名系统,我将其打印到文件中。 我已经设法编写了排名系统的代码,但现在我面临着一个更大的挑战,我无法解决:

我必须做一个总排名,这意味着某个玩家名可以在多个比赛中获得多个分数,但我只需要保留重复的最高分数。

简而言之:我需要一些帮助来保持具有最高值的重复键:

像这样:

dict1 = {"a": 6, "b": 4, "c": 2, "g": 1}
dict2 = {"a": 3, "f": 4, "g": 5, "d": 2}
dictcombined = {'a': 6, 'b': 4, 'c': 2, 'g': 5, 'f': 4, 'd': 2}

正常的合并选项只接受第二个字典和那个值。

提前谢谢

最佳答案

您需要有一个函数来跟踪每个玩家的最高分。如果还没有,它将添加一个玩家到总数中,否则如果它更高则添加它。 像这样的:

def addScores(scores, total):
    for player in scores:
        if player not in total or total[player] < scores[player]:
            total[player] = scores[player]

关于python - 在字典中保留重复键的最高值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47082410/

相关文章:

python - self 定义的问题

python - 在 RHEL 上安装 Python 3

c++ - Visual C++ 2010 中的 STL 映射实现和线程安全

python - Pandas 箱线图上出现奇怪的标记

algorithm - 计算地理 map 上点密度最高区域的高效算法

python - 如果字典不存在,则将其添加到字典中

python - 二维 FFT 显示高于奈奎西极限的意外频率

python - 我如何在 Django 1.9 中排除 Django 数据库

python - 对csv行进行字符串排序

c++ - 如何调试 C++ python 扩展?