Sum numbers by letter in list of tuples

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

    A one liner:

    >>> x = [ ('A',100), ('B',50), ('A',50), ('B',20), ('C',10) ]
    >>> {
    ...     k: reduce(lambda u, v: u + v, [y[1] for y in x if y[0] == k])
    ...     for k in [y[0] for y in x]
    ...     }.items()
    [('A', 150), ('C', 10), ('B', 70)]
    

提交回复
热议问题