python - 将字典树转换为多维列表

标签 python dictionary multidimensional-array

我有一个像这样的字典(Python):

{'G': 
     {'G': 
          {'T': 
               {'A': 'end'},
          'C': 'end'},
     }, 
 'C': {'G': 'end'}
}

如何将其转换为像这样的多维数组?:

['G', 
      ['G', 
          ['T', ['A'],
           'C']
       ], 
  'C', ['G'] 
]

谢谢

最佳答案

d = {
 'G': 
     {'G': 
          {'T': 
               {'A': {'$': '$'}},
          'C': {'$': '$'}}
     }, 
 'C': {'G': {'$': '$'}}
}

def merge(dct):
    return [[k] + merge(v) for k,v in dct.items() if isinstance(v, dict)]

>>> merge(d)
[['C', ['G']], ['G', ['G', ['C'], ['T', ['A']]]]]

另一种变体:

def merge(dct):
    l = []
    for k,v in dct.items():
        if isinstance(v, dict):
            l.append(k)
            m = merge(v)
            if m:
                l.append(m)
    return l


>>> merge(d)
['C', ['G'], 'G', ['G', ['C', 'T', ['A']]]]

关于python - 将字典树转换为多维列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21064311/

相关文章:

Python ODBC 连接 : not a valid file name error

python - 找到字母(列表)的第 n 个组合(增量方法)

python - Django 渲染字典性能

javascript - 在javascript或jquery中动态添加多维数组

multidimensional-array - TensorFlow:在多个维度上采用 L2 范数

python - 对列表的成员进行操作

python - 比较具有较少循环的字典

ios - 无法将类型 'NSDictionary' 的值转换为指定类型 'Dictionary'

类似于字典的Python数据结构,其中键是两个值?

multidimensional-array - 如何在 SSAS 中将多维数据库转换为表格模型