Python-如何通过键组合两个字典
我有两条格言:Python-如何通过键组合两个字典,python,dictionary,union,itertools,Python,Dictionary,Union,Itertools,我有两条格言: A={'a':{"total":5,"all":[100,101]},'b':{"total":10,"all":[200,201]}} B={'a':{"q1":"a","q2":"aa"},'b':{"q1":"b"},'c':{"q1":"c","q2":"ccc"}} 我根据DICT中的键(a、b、c)组合DICT中的所有值,如下所示: import collections super_dict = collections.defaultdict(set) for k,
A={'a':{"total":5,"all":[100,101]},'b':{"total":10,"all":[200,201]}}
B={'a':{"q1":"a","q2":"aa"},'b':{"q1":"b"},'c':{"q1":"c","q2":"ccc"}}
我根据DICT中的键(a、b、c)组合DICT中的所有值,如下所示:
import collections
super_dict = collections.defaultdict(set)
for k, v in chain(A.items(), B.items()):
#related_datasets = v.get("all")
#total_downloads = v.get("total")
#query_1 = v.get("q1")
#query_2 = v.get("q2")
super_dict.setdefault(k, []).append(v)
这导致(超级命令):
但是,我想制作一个超级目录,如下所示:
{'a': {'all': [100, 101], 'q1': 'a', 'q2': 'aa', 'total': 5},
'b': {'all': [200, 201], 'q1': 'b', 'total': 10},
'c': {'q1': 'c', 'q2': 'ccc'}}
任何帮助都将不胜感激
好的,我找到了解决方案:
import collections
super_dict = {}
for k, v in chain(A.items(), B.items()):
related_datasets = v.get("all")
total_downloads = v.get("total")
query_1 = v.get("q1")
query_2 = v.get("q2")
vkeys = v.keys()
if k in super_dict.keys():
super_dict[k].update(v)
else:
super_dict[k]= v
你很接近:
A={'a':{"total":5,"all":[100,101]},'b':{"total":10,"all":[200,201]}}
B={'a':{"q1":"a","q2":"aa"},'b':{"q1":"b"},'c':{"q1":"c","q2":"ccc"}}
from itertools import chain
import collections
super_dict = collections.defaultdict(dict)
for k, v in chain(A.items(), B.items()):
super_dict[k].update(v)
super_dict
你很接近:
A={'a':{"total":5,"all":[100,101]},'b':{"total":10,"all":[200,201]}}
B={'a':{"q1":"a","q2":"aa"},'b':{"q1":"b"},'c':{"q1":"c","q2":"ccc"}}
from itertools import chain
import collections
super_dict = collections.defaultdict(dict)
for k, v in chain(A.items(), B.items()):
super_dict[k].update(v)
super_dict
输出:
{'a': {'q1': 'a', 'q2': 'aa', 'all': [100, 101], 'total': 5}, 'c': {'q1': 'c', 'q2': 'ccc'}, 'b': {'q1': 'b', 'all': [200, 201], 'total': 10}}
输出:
{'a': {'q1': 'a', 'q2': 'aa', 'all': [100, 101], 'total': 5}, 'c': {'q1': 'c', 'q2': 'ccc'}, 'b': {'q1': 'b', 'all': [200, 201], 'total': 10}}
使用最新版本的Python打印结果(C)——C是您的
超级指令。{'a':{'all':[100101],'q1':'a','q2':'aa','total':5},
'b':{'all':[200201],'q1':'b','total':10},
'c':{'q1':'c','q2':'ccc'} 使用最新版本的Python打印结果(C)——C是您的 超级指令。
{'a':{'all':[100101],'q1':'a','q2':'aa','total':5},
'b':{'all':[200201],'q1':'b','total':10},
'c':{'q1':'c','q2':'ccc'}
A={'a':{"total":5,"all":[100,101]},'b':{"total":10,"all":[200,201]}}
B={'a':{"q1":"a","q2":"aa"},'b':{"q1":"b"},'c':{"q1":"c","q2":"ccc"}}
C = {}
C['a'] = {**A['a'], **B['a']}
C['b'] = {**A['b'], **B['b']}
C['c'] = {**B['c']}
print(C)