• 把一个字典扁平化


     1 ''' 把一个字典扁平化'''
     2 
     3 src = {'a':{'b':1,'c':2},'d':{'e':3,'f':{'g':4}}} # dest = {'a.b':1,'a.c':2,'d.e':3,'d.f.g':4}
     4 # dest = {}
     5 
     6 def faltmat(src:dict, key='', dest={}):
     7     for k, v in src.items():
     8         if isinstance(v, dict):
     9             key  = key + k + '.'
    10             faltmat(v, key)
    11             key = ''
    12         else:
    13             dest[key + k] = v
    14     return dest
    15 
    16 print(faltmat(src))
    17 
    18 
    19 def falmat(src):
    20     def _faltmat(src:dict, key='', dest={}):
    21         for k, v in src.items():
    22             if isinstance(v, dict):
    23                 key  = key + k + '.'
    24                 faltmat(v, key)
    25                 key = ''
    26             else:
    27                 dest[key + k] = v
    28         return dest
    29     return _faltmat
    30 print(faltmat(src))
    31 
    32 封装
    33 def falmat(src):
    34     dest={}
    35     def _faltmat(src:dict, key='' ):
    36         for k, v in src.items():
    37             if isinstance(v, dict):
    38                 key  = key + k + '.'
    39                 faltmat(v, key)
    40                 key = ''
    41             else:
    42                 dest[key + k] = v
    43 
    44     _faltmat(src)
    45     return dest
    46 
    47 print(faltmat(src))
    字典的扁平化 主要考虑的 是 递归的使用,要分清楚递归次数,
    最主要的是结束条件,上题,结束条件是通过 v 是否是 字典,
    如果不是,就进入else条件。
    为什么要坚持,想一想当初!
  • 相关阅读:
    数值数据类型
    如何提高数据迁移和复制的速度
    dns解析
    cdn加速
    集群
    JavaScript初学者应注意的七个细节
    CXF 5参考资料
    深入理解Spring MVC 思想
    【深入理解Java内存模型】
    牛人论
  • 原文地址:https://www.cnblogs.com/JerryZao/p/9574880.html
Copyright © 2020-2023  润新知