我有一个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化的方式做到这一点?
答案 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})