在包含键和值列表的字典中,如何最常查找值列表中的值?我假设您使用for循环并附加到列表但不确定如何这样做。另外,我想打印最频繁出现的值?
谢谢!
请记住,我对编程很新,不熟悉lambda或其他复杂方法来解决这个问题。
答案 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}