キーと数値の組を、キーごとに集計する(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]]