たそらぼ

日頃思ったこととかメモとか。

キーと数値の組を、キーごとに集計する(Python)

キーと数値の組をPythonで集計する方法です。
簡単なことなのですが、忘れたころに直面して際現に微妙に時間が取られるので、メモしておきます。

集計したいデータ

こんな感じのデータを集計したい。

data = [['aaa', 2], ['bbb', 1], ['aaa', 2], ['bbb', 1], ['aaa', 2], ['ccc', 1]]
# =>[('aaa', 6), ('bbb', 2), ('ccc', 1)]

実装

辞書型のキーになければ新しく追加し、あれば足し込んでいきます。

counter = {}
for i in range(len(data)):
    if not (data[i][0] in counter.keys()):
        counter[data[i][0]] = data[i][1]
        
    else:
        counter[data[i][0]] += data[i][1]

[[key, counter[key]] for key in counter.keys()]

結果

[['aaa', 6], ['bbb', 2], ['ccc', 1]]