zoukankan      html  css  js  c++  java
  • python通过递归清除字典中value为特定值的key

    输入dict

    person = {'a': {'age': 43, 'addr': ''}, 'b': {'age': 0, 'addr': 'China', 'd': {'age': 43, 'addr': ''}}, 'c': {'age': 0, 'addr': None}}
    

    代码

    
    _filter = [0, '0', None, '']
    _key_list = {}
    
    def get_k(data_json, target=_key_list, filter=_filter):
        for key in data_json.keys():
            if isinstance(data_json[key], dict):
                if not bool(data_json[key]):
                    continue
                target[key] = {}
                get_k(data_json[key], target[key])
            else:
                if data_json[key] not in filter:
                    target[key] = data_json[key]
        return target
    

    输出

    运行一次

    {'a': {'age': 43}, 'b': {'addr': 'China', 'd': {'age': 43}}, 'c': {}}
    

    运行两次

    {'a': {'age': 43}, 'b': {'addr': 'China', 'd': {'age': 43}}}
    
  • 相关阅读:
    Linux零拷贝技术 直接 io
    纯Python模式
    c 越界 数组越界
    哈希 二叉树
    Cache busting
    sub esp
    lisp 代码即数据
    hexdump
    nmap
    对象 闭包
  • 原文地址:https://www.cnblogs.com/bionexit/p/14730759.html
Copyright © 2011-2022 走看看