嵌套dict python中唯一值的计数

嵌套dict python中唯一值的计数,python,dictionary,iterator,set,Python,Dictionary,Iterator,Set,我的口述是: dict = { "a": {"Azerbaijan": 20006.0, "Germany": 20016.571428571428}, "b": {"Chad": 13000.0, "South Africa": 3000000.0}, "c": {"Chad": 200061.0, "South Africa": 3000000.0} } 我试图得到每个独特国家和价值观发生的数量 例如,{乍得:2,南非:2,…},{3000000:2,13000:1

我的口述是:

dict = {
    "a": {"Azerbaijan": 20006.0, "Germany": 20016.571428571428},
    "b": {"Chad": 13000.0, "South Africa": 3000000.0},
    "c": {"Chad": 200061.0, "South Africa": 3000000.0}
}
我试图得到每个独特国家和价值观发生的数量

例如,{乍得:2,南非:2,…},{3000000:2,13000:1,…}

我正在使用下面的代码,它可以工作,但不是很聪明,有没有更好的方法不用很长的迭代周期就能做到这一点,因为实际的dict是巨大的

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字典是不按顺序排列的——你怎么知道从每个国家的字典中取哪个键呢?如果还没有看到的话。字典只包含唯一的值,如果我理解正确的话?它们包含唯一的键-这是正确的。但是-键的顺序是任意的。。。或者你在数所有的钥匙,而不仅仅是国家。。。?我很确定a键都不是国家…编辑这个问题是为了更清楚。宾夕法尼亚大道西北部是如何成为一个国家的,3000000是如何凭空进入结果的?它不在输入中?你们的国家是国家?因为Python字典是不按顺序排列的——你怎么知道从每个国家的字典中取哪个键呢?如果还没有看到的话。字典只包含唯一的值,如果我理解正确的话?它们包含唯一的键-这是正确的。但是-键的顺序是任意的。。。或者你在数所有的钥匙,而不仅仅是国家。。。?我相当确定a键都不是国家…编辑了这个问题以使问题更清楚。宾夕法尼亚大道西北部是如何成为一个国家的,3000000是如何凭空进入结果的?它不在输入中?
from collections import Counter
seen_countries = Counter()
seen_values = Counter()
for data in your_dicts.itervalues():
    seen_countries += Counter(data.keys())
    seen_values += Counter(data.values())