[lang-ref] ( sum_group_by_key ) ( python )

def test_sum_group_by_key():
    # defaultdict
    from collections import defaultdict
    rows = [
        ('A', 11),
        ('B', 12),
        ('C', 13),
        ('B', 22),
        ('C', 23),
        ('B', 32),
    ]
    sums = defaultdict(int) # 0 is set at first access
    for k, v in rows:
        sums[k] += v

    assert sums == { 'A': 11, 'B': 66, 'C': 36 }
def test_sum_group_by_key_alternative():
    # get
    rows = [
        ('A', 11),
        ('B', 12),
        ('C', 13),
        ('B', 22),
        ('C', 23),
        ('B', 32),
    ]
    sums = {}
    for k, v in rows:
        sums[k] = sums.get(k, 0) + v

    assert sums == { 'A': 11, 'B': 66, 'C': 36 }