Python 2.7 - Sum value on duplicates in dictionary -
i have list of dictionaries like:
list1=[{'a':'apples', 'b':'snack','count':2},{'a':'apples','b':'lunch','count':3},{'a':'apples','b':'snack','count':3}] i need grouping duplicates in list on 'a' , 'b' , sum 'count' such that:
list2=[{'a':'apples','b':'snack','count':5},{'a':'apples','b':'lunch','count':3}] searched through repository here , haven't recognized solution. much pointers.
you can utilize defaultdict 2tuple accumulate counts, force list...
list1=[{'a':'apples', 'b':'snack','count':2},{'a':'apples','b':'lunch','count':3},{'a':'apples','b':'snack','count':3}] collections import defaultdict dd = defaultdict(int) d in list1: dd[d['a'], d['b']] += d['count'] list2 = [{'a': k[0], 'b': k[1], 'count': v} k, v in dd.iteritems()] [{'a': 'apples', 'count': 3, 'b': 'lunch'}, {'a': 'apples', 'count': 5, 'b': 'snack'}] python dictionary python-2.7
No comments:
Post a Comment