组合字典,将匹配的键与整数相加,而不是字符串

我正在编写一系列脚本,这些脚本将来自多服务器的字典结合在一起,用于我运行的游戏,因此我可以看到每个人在它们之间的表现。我想将所有词典合并在一起以获得一个“总计”。问题是字典是字符串、整数None、 和嵌套字典的组合。

它也变得有点复杂。['Names'] 可以是多个东西。根ID是实际玩家的唯一ID,玩家可以多次更改。它很复杂,因为出于某种原因,这些键是整数,而不是字符串……所以这也有点奇怪。

无论如何,我只是想弄清楚如何尽可能地将这些文件中的 3 个组合在一起。

我研究过使用计数,但很明显,一旦有嵌套的字典和字符串,它就会消失。


慕森卡
浏览 145回答 1
1回答

幕布斯6054654

您可以尝试递归策略,假设任何给定键的所有字典中的类型都相同:import copydef combine_dicts(first, other):    first = copy.deepcopy(first)    for k, v in other.items():        if k not in first:            first[k] = v        else:            if type(v) == dict:                first[k] = combine_dicts(first[k], v)            elif type(v) == int:                first[k] += v    return first对于字符串值,您需要更具体地了解您想要的行为。级联?鉴于您提供的数据,这似乎不正确。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python