Python中的最常见值

时间:2017-12-26 13:10:40

标签: python list

我需要一个从列表中返回最常用值的函数。如果有多个最常见的值,则返回所有值。

l = [1, 1, 2, 2, 4]

def most_common(l):
    #some code 
    return common

这应该返回:

[1, 2]

因为他们都出现了两次。

我很惊讶没有简单的功能。我尝试过收藏品,但似乎无法解决这个问题。

1 个答案:

答案 0 :(得分:0)

您可以先将collections.defaultdict中的项目与计数值分组:

from collections import defaultdict

l = [1, 1, 2, 2, 4]

counts = defaultdict(int)
for number in l:
    counts[number] += 1

print(counts)
# defaultdict(<class 'int'>, {1: 2, 2: 2, 4: 1})

然后你可以从这本词典中找到最常见的值:

most_common = [k for k, v in counts.items() if v == max(counts.values())]

print(most_common)
# [1, 2]