2017-02-08 10 views
1

私はこのようなデータ構造を持っています。値に基づいてネストされたdictの要素をカウントする(理解)

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

}

私は「金融」に等しい「sector1」の値をカウントする方法を把握しようとしています。これを行うための長い道のりは、

count = 0 

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

print(count) 

しかし、私はそれが列挙またはLEN()のようなものを使用してdictの理解を経由して、それを行うことは可能ですが、運がなかったしているかどうかを確認しようとしています。私が従うことができるすべての提案/アイデアや例?

答えて

1

あなたはとしてジェネレータ式sumを使用することがあります。

my_dataが問題に言及した dictオブジェクトを保持している
>>> sum(1 for data in my_data.values() if data['sector1'] == 'finance') 
2 

1

うん、でも辞書内包表記を使用しても意味がありません:

>>> sum(1 for v in data.values() if v['sector1'] == 'finance') 
2 
関連する問題