1
に私のような辞書があります。Countは、ネストされた辞書パイソン
dict = {
"a": {"Azerbaijan": 20006.0, "Germany": 20016.571428571428},
"b": {"Chad": 13000.0, "South Africa": 3000000.0},
"c": {"Chad": 200061.0, "South Africa": 3000000.0}
}
をそして私は、それぞれユニークな国や値の出現回数の辞書を取得しようとしています。例えば
、{"Chad": 2, "South Africa": 2,..}
、{"3000000": 2, "13000": 1,..}
私は動作しますが、非常にスマートではありません、それ以下のコードを使用しています実際の辞書が巨大であるため、長い反復サイクルせずにこれを行うには良い方法は、ありますか?
seencountries = {}
seenvalues = {}
for key, innerdict in dict.iteritems():
for country, value in innerdict.iteritems():
if value not in seenvalues.keys():
seenvalues[value] = 0
seenvalues[value]+=1
if country not in seencountries.keys():
seencountries[country] = 0
seencountries[country]+=1
print seencountries
print seenvalues
あなたの国では、*キー*ですか? Python辞書は順序付けされていないので、どの辞書を国のために使うべきかをどのように知っていますか? –
見たことがない場合。私が正しく理解すれば、辞書にはユニークな値しか含まれていませんか? –
これらには固有のキーが含まれています。しかし、キーの順序は任意です...またはあなたは国だけでなくすべてのキーを数えていますか?私はキーのためにかなり確信しています*これらのキーのどちらも国ではありません... –