Python 2.2 の場合:
stat2 = {}
for s in stat:
for c in s.values():
for k, v in c.items():
if k in stat2:
stat2[k] += v
else:
stat2[k] = v # perhaps copying here
stat2
{'asian': ['japan', 'china'],
'europe': ['germany', 'england', 'french', 'netherland']}
Python > 2.4 を使用している場合は、defaultdict を使用できます。
from collections import defaultdict
stat2 = defaultdict(list)
for s in stat:
for c in s.values():
for k, v in c.items():
stat2[k] += v
stat2
defaultdict(<type 'list'>, {'europe': ['germany', 'england', 'french', 'netherland'], 'asian': ['japan', 'china']})
そして、あなたが本当にしたい場合:
{'state': [dict(stat2)]}
{'state': [{'asian': ['japan', 'china'],
'europe': ['germany', 'england', 'french', 'netherland']}]}
Python のバージョンをアップグレードすることを検討してください。2.2 は 2001 年にリリースされました...!