[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 }