我有一个 python 字典,如果可用的话,我需要在其中找到节点的 children
I have a python dictionary where i need to find the children of the nodes if available
我有以下字典表示 id:parent. {1: 2, 3: 1}
。
我需要循环并检查 id == parent
是否是 child。
例如这里:
1=1
所以 3
是 1
的 child。
我会相应地把它附加到词典中。
有什么想法吗?
d={1:2, 3:1}
for node in d:
dict1={1:2,2:3,3:1,4:1,5:2}
result={}
for key in dict1.keys():
result[key]=[]
for item in dict1.items():
if key==item[1]:
result[key].append(item[0])
print(result)
output:
{1: [3, 4], 2: [1, 5], 3: [2], 4: [], 5: []}
如果不想有那些没有child的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:parent. {1: 2, 3: 1}
。
我需要循环并检查 id == parent
是否是 child。
例如这里:
1=1
所以 3
是 1
的 child。
我会相应地把它附加到词典中。 有什么想法吗?
d={1:2, 3:1}
for node in d:
dict1={1:2,2:3,3:1,4:1,5:2}
result={}
for key in dict1.keys():
result[key]=[]
for item in dict1.items():
if key==item[1]:
result[key].append(item[0])
print(result)
output:
{1: [3, 4], 2: [1, 5], 3: [2], 4: [], 5: []}
如果不想有那些没有child的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