Grouping Python tuple list

前端 未结 7 1624
日久生厌
日久生厌 2020-11-30 07:47

I have a list of (label, count) tuples like this:

[(\'grape\', 100), (\'grape\', 3), (\'apple\', 15), (\'apple\', 10), (\'apple\', 4), (\'banana\', 3)]
         


        
7条回答
  •  余生分开走
    2020-11-30 08:06

    Method

    def group_by(my_list):
        result = {}
        for k, v in my_list:
            result[k] = v if k not in result else result[k] + v
        return result 
    

    Usage

    my_list = [
        ('grape', 100), ('grape', 3), ('apple', 15),
        ('apple', 10), ('apple', 4), ('banana', 3)
    ]
    
    group_by(my_list) 
    
    # Output: {'grape': 103, 'apple': 29, 'banana': 3}
    

    You Convert to List of tuples like list(group_by(my_list).items()).

提交回复
热议问题