python 利用递归修改嵌套字典的内容

为方便起见,更新字典的内容为原内容加1。

def update_dict(root):
    # 判断是否为空树
    if root == {}:
        return {}
    # 递归遍历嵌套字典
    for root_key, root_value  in root.items():
    	# 是否为叶子节点
        if not  isinstance(root[root_key],dict):
        	# 更新叶子节点的值
            root[root_key] = root[root_key] + 1
            return root
        else:
        	# 递归非叶子节点
            result = update_dict(root[root_key])
            root[root_key] = result
    return root
if __name__ == "__main__":
    Nested_dict = {"a":
                        {"a1":
                            {"a11":
                                {"a111":{"a":1,"b":2},
                                "a112":{"c":1,"d":2}},
                            "a12":{"a":1,"b":2},
                            "a13":{"c":1,"d":2}},
                        "a2":{"a":1,"b":2}
                        },
                    "b":{"a":1,"b":2}
                    }
    result = update_dict(Nested_dict)
    print(result)
 """
 修改后的字典
 {'a': {'a1': {'a11': {'a111': {'a': 2, 'b': 2}, 'a112': {'c': 2, 'd': 2}}, 
 'a12': {'a': 2, 'b': 2}, 'a13': {'c': 2, 'd': 2}}, 'a2': {'a': 2, 'b': 2}}, 
 'b': {'a': 2, 'b': 2}}
 """
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值