如何在字典中计算相同的值?

时间:2018-08-26 15:19:18

标签: python dictionary counter

我有一个dict,看起来像这样:

"votes": {
    "user1": "yes",
    "user2": "no",
    "user3": "yes",
    "user4": "no",
    "user5": "maybe",
    "user6": "yes"
}

我想做的是,对相同的值进行计数,以使我知道yes发生了3次,no发生了2次,maybe发生了1次。

我现在要做的是:

votes = OrderedDict()
for key, value in vote_dict["votes"].items():
    if value in votes:
        votes[value] += 1
    else:
        votes[value] = 1

它可以正常工作,但是肯定有更好的方法。什么是更Python化的方式做到这一点?

1 个答案:

答案 0 :(得分:7)

您可以将dict.values之类的可迭代内容提供给collections.Counter

from collections import Counter

votes = {"user1": "yes", "user2": "no", "user3": "yes",
         "user4": "no", "user5": "maybe", "user6": "yes"}

res = Counter(votes.values())

print(res)

Counter({'yes': 3, 'no': 2, 'maybe': 1})