Sum numbers by letter in list of tuples

前端 未结 8 1603
不思量自难忘°
不思量自难忘° 2020-12-11 09:44

I have a list of tuples:

[ (\'A\',100), (\'B\',50), (\'A\',50), (\'B\',20), (\'C\',10) ]

I am trying to sum up all numbers that have the s

8条回答
  •  渐次进展
    2020-12-11 10:14

    >>> from collections import Counter
    >>> c = Counter()
    >>> for k, num in items:
            c[k] += num
    
    
    >>> c.items()
    [('A', 150), ('C', 10), ('B', 70)]
    

    Less efficient (but nicer looking) one liner version:

    >>> Counter(k for k, num in items for i in range(num)).items()
    [('A', 150), ('C', 10), ('B', 70)]
    

提交回复
热议问题