基于值(理解)计算嵌套字典中的元素

时间:2017-02-08 22:58:18

标签: python python-3.x dictionary count

我有这样的数据结构;

{
"job3": {
    "sector1": "finance",
    "sector2": "it"
},
"job2": {
    "sector1": "finance",
    "sector2": "it"
},
"job1": {
    "sector1": "it",
    "sector2": "finance"
}

}

我想知道我如何计算' sector1'价值相当于' finance'。这样做的方法很长;

count = 0

for x,y in data.items():
    if y['sector1'] == 'finance':
        count += 1

print(count)

但是我试图看看是否可以通过使用枚举或len()这样的dict理解来做到这一点,但是没有运气。我可以遵循的任何建议/想法或例子吗?

2 个答案:

答案 0 :(得分:1)

您可以将sum生成器表达式一起使用为:

>>> sum(1 for data in my_data.values() if data['sector1'] == 'finance')
2

其中my_data持有问题中提到的dict对象。

答案 1 :(得分:1)

是的,但使用字典理解是没有意义的:

>>> sum(1 for v in data.values() if v['sector1'] == 'finance')
2