繁体   English   中英

嵌套dict python中唯一值的计数

[英]Count of unique values in nested dict python

我有一个像这样的字典:

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,..}

我正在使用下面的代码,但它不是很聪明,是否有更好的方法来执行此操作,而无需花费很长的迭代周期,因为实际的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
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())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM