

pythonでディクショナリの要素数の出現回数をカウントし、一覧として出力したいのですが、  
どういったコードを書けばよいでしょうか？(ダメ元ですが以下のコートを書いてみました）

[code]

    p=partition
    for v in max(partition.values()):
        l=list(p.values()).count(v)
    
[/code]

pのデータは以下ような感じになっております。例えば「0」に該当するものがいくつあるのか知りたいです。

[code]

    {'あんこ': 0, 'チョコ': 0, '飴': 0, 'クッキー': 0, 'お刺身': 2, '小麦粉': 1, 'てんぷら粉': 1, 'ちくわ': 2, 'マシュマロ': 0, '肉じゃが': 2,
    
[/code]


CC BY-SA 4.0
2020-03-23T13:22:41.463
64052
2020-03-23T13:31:22.670
38030
question
python
ディクショナリの要素数の出現回数カウント


愚直に「value が 0 となる個数を数える」やり方です：

[code]

    sum([1 for v in p.values() if v == 0])
    
[/code]

ジェネレーターとして書いたり、`True` が `1` として扱われるのを援用したりすることもできます：

[code]

    sum(v == 0 for v in p.values())
    
[/code]

色んな value
について何回も数えるなら、[`collections.Counter`](https://docs.python.org/ja/3/library/collections.html#collections.Counter)
が便利です：

[code]

    from collections import Counter
    
    cp = Counter(p.values())
    cp[0]
    
[/code]

参考： [count the number of occurrences of a certain value in a dictionary in
python?](https://stackoverflow.com/q/48371856/5989200) \-- 英語版 Stack Overflow


CC BY-SA 4.0
2020-03-23T13:31:22.670
64053
2020-03-23T13:31:22.670
19110
64052
answer