• 把一个字典扁平化


     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条件。
    为什么要坚持,想一想当初!
  • 相关阅读:
    病毒软件测试代码
    如何将WIN安全设置重置回默认值
    今天值班非常不爽。
    FTP命令(2)
    WORD操作
    DELPHI事务
    DELPHI一些常用的技巧
    钩子学习心得
    (转 )Delphi指针如何指向使用with开域语句创建的无名组件对象
    WebBrowser 操作记要 (DELPHI)
  • 原文地址:https://www.cnblogs.com/JerryZao/p/9574880.html
Copyright © 2020-2023  润新知