我有一个python字典,需要在其中查找节点的子节点(如果可用)

我有一个python字典,需要在其中查找节点的子节点(如果可用),python,dictionary,parent,children,Python,Dictionary,Parent,Children,我有以下表示id的字典:parent。{1:2,3:1} 我需要循环检查,如果id==parent,那么它就是一个孩子 例如: 1=1所以3是1的孩子 我将把它相应地附加到词典中。 有什么想法吗 d={1:2, 3:1} for node in d: 如果您不希望这些ID没有子项,那么您可以按照以下方式编写 dict1={1:2,2:3,3:1,4:1,5:2} result={} for key in dict1.keys(): for item in dict1.it

我有以下表示
id的字典:parent。{1:2,3:1}

我需要循环检查,如果
id==parent
,那么它就是一个孩子

例如:
1=1
所以
3
1
的孩子

我将把它相应地附加到词典中。 有什么想法吗

 d={1:2, 3:1}
      for node in d:
如果您不希望这些ID没有子项,那么您可以按照以下方式编写

dict1={1:2,2:3,3:1,4:1,5:2}
result={}
for key in dict1.keys():
    for item in dict1.items():
        if key==item[1]:
            if key not in result:
                result[key]=[]
            result[key].append(item[0])
print(result)
output:
{1: [3, 4], 2: [1, 5], 3: [2]}
O(n)
解决方案是:

child_parent = {1:2, 3:1, 4:1, 5:2, 1:5, 6:5, 7:2}
parent_children = {}
for child, parent in child_parent.items():
    parent_children.setdefault(parent, []).append(child)
给予:

{5: [1, 6], 1: [3, 4], 2: [5, 7]}

并且,为了便于评估,数据表示以下树:

  2
 / \
7   5
   / \
  6   1
     / \
    3   4

因此,您希望为
id:child
yes创建一个新的dict,或者将该子项附加到原始词典中这是
O(n^2)
。。。还是完成了,谢谢!这太棒了!非常感谢。python能否显示您绘制的树?@user3057109不是本机显示,而是签出:
  2
 / \
7   5
   / \
  6   1
     / \
    3   4