合并两个层次结构字典(Python3)
Combine two hierarchy dictionaries (Python3)
我有两个层次结构词典需要合并为一个。字典 a 和 b 只共享一个共同的根节点(例如组织的首席执行官),否则它们之间没有重叠(例如下面的 a 和 b 是两个独立的业务线)。
a = {'parent': '', 'name': 'CEO', 'children': [{'parent': 'CEO', 'name': 'Dir1'}]}
b = {'parent': '', 'name': 'CEO', 'children': [{'parent': 'CEO', 'name': 'Dir2'}]}
这就是组合词典需要的样子,但是怎么样?
{'parent': '', 'name': 'CEO', 'children': [{'parent': 'CEO', 'name': 'Dir1'},{'parent': 'CEO', 'name': 'Dir2'}]}
我试过了
def Merge(dict1, dict2):
return(dict2.update(dict1))
def Merge(dict1, dict2):
res = {**dict1, **dict2}
return res
...但由于我假设的词典的层次结构性质,这两者都不起作用。我也试过这个,但没有成功:SO link
我认为这段代码应该return你需要什么:
a = {'parent': '', 'name': 'CEO', 'children': [{'parent': 'CEO', 'name': 'Dir1'}]}
b = {'parent': '', 'name': 'CEO', 'children': [{'parent': 'CEO', 'name': 'Dir2'}]}
def Merge(dictionaries):
children = []
for d in dictionaries:
children = children + d['children']
return children
children = Merge([a,b])
new_dictionary = {'parent': '', 'name': 'CEO', 'chilren': children}
print(new_dictionary)
这会给你这个:
{'parent': '', 'name': 'CEO', 'chilren': [{'parent': 'CEO', 'name': 'Dir1'}, {'parent': 'CEO', 'name': 'Dir2'}]}
我有两个层次结构词典需要合并为一个。字典 a 和 b 只共享一个共同的根节点(例如组织的首席执行官),否则它们之间没有重叠(例如下面的 a 和 b 是两个独立的业务线)。
a = {'parent': '', 'name': 'CEO', 'children': [{'parent': 'CEO', 'name': 'Dir1'}]}
b = {'parent': '', 'name': 'CEO', 'children': [{'parent': 'CEO', 'name': 'Dir2'}]}
这就是组合词典需要的样子,但是怎么样?
{'parent': '', 'name': 'CEO', 'children': [{'parent': 'CEO', 'name': 'Dir1'},{'parent': 'CEO', 'name': 'Dir2'}]}
我试过了
def Merge(dict1, dict2):
return(dict2.update(dict1))
def Merge(dict1, dict2):
res = {**dict1, **dict2}
return res
...但由于我假设的词典的层次结构性质,这两者都不起作用。我也试过这个,但没有成功:SO link
我认为这段代码应该return你需要什么:
a = {'parent': '', 'name': 'CEO', 'children': [{'parent': 'CEO', 'name': 'Dir1'}]}
b = {'parent': '', 'name': 'CEO', 'children': [{'parent': 'CEO', 'name': 'Dir2'}]}
def Merge(dictionaries):
children = []
for d in dictionaries:
children = children + d['children']
return children
children = Merge([a,b])
new_dictionary = {'parent': '', 'name': 'CEO', 'chilren': children}
print(new_dictionary)
这会给你这个:
{'parent': '', 'name': 'CEO', 'chilren': [{'parent': 'CEO', 'name': 'Dir1'}, {'parent': 'CEO', 'name': 'Dir2'}]}