辉煌仪奇 2021-09-30 09:34 采纳率: 47.4%
浏览 179
已结题

python 字典数据累加

我有一组数据,有一个字典数据如下

b = {
    1: {
        11: {
            111: 150,
            112: 151,
            113: 152,
        },
        12: {
            121: 160,
            122: 161,
            123: 162,
        },
    },
    2: {
        21: {
            211: 0,
            212: 1,
            213: 1,
        },
        22: {

            211: 0,
            212: 1,
            213: 1,
        },

    },
}

现在我需要一个方法,实现这样一个功能,随便传入一个key,返回该key下面所有子key的数据累计额和,如果该key是最后一级则返回该key值,如果没有改key值,则返回None

  • 写回答

3条回答 默认 最新

  • 江天暮雪丨 2021-09-30 10:22
    关注

    勉强算是实现了,需要进行更多样本测试

    def custom_sum(obj):
         """
        返回一个嵌套字典的所有值的和
        :param obj: dict  or int
        :return: summary
        """
        if isinstance(obj, dict):
            summary = 0
            for v in obj.values():
                summary += custom_sum(v)
            return summary
        else:
            return obj
    
    
    def search(dic: dict, key: int):
        """
       指定键进行多层嵌套的字典搜索
        """
        if not isinstance(dic, dict):
            return None
        print("Current dict:")
        print(dic)
        value = dic.get(key)
        if value:
            return custom_sum(value)
        else:
            for v in dic.values():
                result = search(v, key)
                if result:
                    return result
            return None
    
    
    # print(search(b, 1111))
    # print(search(b, 111))
    # print(search(b, 11))
    print(search(b, 1))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月30日
  • 已采纳回答 9月30日
  • 创建了问题 9月30日

悬赏问题

  • ¥15 关于下拉菜单选项关联的问题
  • ¥15 如何修改pca中的feature函数
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R