Sum numbers by letter in list of tuples

前端 未结 8 1584
不思量自难忘°
不思量自难忘° 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:10

    Try this:

    a = [('A',100), ('B',50), ('A',50), ('B',20), ('C',10) ]
    
    letters = set([s[0] for s in a])
    
    new_a = []
    for l in letters:
        nums = [s[1] for s in a if s[0] == l]
        new_a.append((l, sum(nums)))
    
    print new_a    
    

    Results:

    [('A', 150), ('C', 10), ('B', 70)]
    

提交回复
热议问题