繁体   English   中英

Python:从父子映射创建嵌套字典

[英]Python: create nested dictionary from parent-child mapping

我有如下的子父映射:

{4:6,
 6:9,
 7:6,
 5:6,
 8:9,
 11:9,
 10:9,
 12:10,
 13:10}

我想使用上面创建以下嵌套字典:

{"id":9,
 "children":[
             {"id":6,
              "children":[
                          {"id":4,
                           "children":[]},
                          {"id":5,
                           "children":[]},
                          {"id":7,
                           "children":[]},
                         ]
              },
              {"id":10,
              "children":[
                          {"id":12,
                           "children":[]},
                          {"id":13,
                           "children":[]},
                         ]
              },
              {"id":11,
              "children":[]
              },
              {"id":8,
              "children":[]
              }
              ]
}

我能够弄清楚如果不是将键作为“id”和值为 9,6 等,我将值作为键,我该怎么做。 请帮助我使用上述格式。

我得到了我的查询的解决方案。

我将子-父映射转换为元组列表,如下所示:

queue_tuples= [(6,9,1),(11,9,1),(8,9,1),(10,9,1),(5,6,2),(7,6,2),(4,6,2),(12,10,2),(13,10,2)]
root = 9

以下是代码:

pGraph = {"id":root,"children":[]}

for tuple in queue_tuples:
    level = tuple[2]
    g = pGraph["children"]
    for i in range(level-1):
        for e in g:
            if tuple[1]==e["id"]:
                g = e["children"]
    flag = 0
    for e in g:
        if tuple[0]==e["id"]:
            flag = 1
            break
    if flag==0:
        g.append({"id":tuple[0],"children":[]})
print pGraph

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM