我有一个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