python dictionary merge (adding count)


from collections import Counter
from collections import defaultdict
d1 = defaultdict(int)
d1['a']=1
d1['b']=2
d1['c']=3
d1
defaultdict(<type 'int'>, {'a': 1, 'c': 3, 'b': 2})
d2 =d1
d2['d'] = 4
d2
defaultdict(<type 'int'>, {'a': 1, 'c': 3, 'b': 2, 'd': 4})
d3 = dict(Counter(d1)+Counter(d2))
d3
{'a': 2, 'c': 6, 'b': 4, 'd': 8}
d2['a'] = -1
d3 = dict(Counter(d1)+Counter(d2))
d3
{'c': 6, 'b': 4, 'd': 8}

intersecton (considering values)
common_key = list(set(d1.keys()) & set(d2.keys()))
common_value = {}
for key in common_key:
  common_value[key] = min(d1[key], d2[key]) 






タグ:

python
最終更新:2013年12月18日 00:46