为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕森卡 2021-11-02 15:35:12
我正在编写一系列脚本,这些脚本将来自多服务器的字典结合在一起,用于我运行的游戏,因此我可以看到每个人在它们之间的表现。我想将所有词典合并在一起以获得一个“总计”。问题是字典是字符串、整数None、 和嵌套字典的组合。它也变得有点复杂。['Names'] 可以是多个东西。根ID是实际玩家的唯一ID,玩家可以多次更改。它很复杂,因为出于某种原因,这些键是整数,而不是字符串……所以这也有点奇怪。无论如何,我只是想弄清楚如何尽可能地将这些文件中的 3 个组合在一起。我研究过使用计数,但很明显,一旦有嵌套的字典和字符串,它就会消失。
查看完整描述

1 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

您可以尝试递归策略,假设任何给定键的所有字典中的类型都相同:


import copy


def 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

对于字符串值,您需要更具体地了解您想要的行为。级联?鉴于您提供的数据,这似乎不正确。


查看完整回答
反对 回复 2021-11-02
  • 1 回答
  • 0 关注
  • 144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信