Note If you use a dictionary (if not OrderedDict), the order will not be saved, so the final order of your result will not be the same as you depicted in your example
Going back to your example, If
>>> d1={'ch:23': 100, 'ch:24': 95} >>> d2={'ch:23': 98 ,'ch:25': 100}
You can try this
>>> d3=collections.defaultdict(list) >>> for k,e in d1.items()+d2.items(): d3[k].append(e)
If you want to save the order, you need to create the original dictionary as an ordered dict in the first instance
Then you can do it like
>>> d1 OrderedDict([('ch:23', 100), ('ch:24', 95)]) >>> d2 OrderedDict([('ch:23', 98), ('ch:25', 100)]) >>> d3=collections.OrderedDict() >>> for k,e in d1.items()+d2.items(): d3.setdefault(k,[]).append(e) >>> d3 OrderedDict([('ch:23', [100, 98]), ('ch:24', [95]), ('ch:25', [100])]) >>>
source share