各キーの最初の文字を取得し、それを呼び出し.upper()
て、その大文字で値を合計します。次のループ
out = {}
for key, value in original.iteritems():
out[key[0].upper()] = out.get(key[0].upper(), 0) + value
するべきです。
collections.defaultdict()
オブジェクトを使用して、それを少し単純化することもできます。
from collections import defaultdict:
out = defaultdict(int)
for key, value in original.iteritems():
out[key[0].upper()] += value
または使用できますitertools.groupby()
:
from itertools import groupby
key = lambda i: i[0][0].upper()
out = {key: sum(v for k, v in group) for key, group in groupby(sorted(original.items(), key=key), key=key)}