如何在字典中找到最常出现的值?

时间:2014-12-01 21:50:01

标签: python dictionary frequency

在包含键和值列表的字典中,如何最常查找值列表中的值?我假设您使用for循环并附加到列表但不确定如何这样做。另外,我想打印最频繁出现的值?

谢谢!

请记住,我对编程很新,不熟悉lambda或其他复杂方法来解决这个问题。

2 个答案:

答案 0 :(得分:4)

这样做的一种方法是使用collections.Counter

from collections import Counter

>>> d = {'a': 5, 'b': 3, 'c': 5, 'd': 1, 'e': 5}
>>> c = Counter(d.values())
>>> c
[(5, 3), (1, 1), (3, 1)]

>>> c.most_common()[0]
(5, 3)   # this is the value, and number of appearances

答案 1 :(得分:0)

按值对字典进行排序应该这样做:

d = {'a': 5, 'b': 3, 'c': 5, 'd': 1, 'e': 5}

print(d[sorted(d, key=lambda k: d[k])[-1]])

网络是正确的,以上是最大的价值。请参阅下文以获得最常见的信息。我的想法是在不使用collections.Counter的情况下获得价值。

counts = {}
for k in d:
    counts[d[k]] = counts.get(d[k], 0) + 1


print(sorted(counts)[-1])   # 5
print(counts)               # {1: 1, 3: 1, 5: 3}