Python:获取列表中最低,最频繁的值

时间:2020-08-02 09:50:41

标签: python frequency minimum

嗨,社区! 关于以下问题,您能帮我吗?我没有设法为我的问题找到有效的解决方案。任何帮助深表感谢!预先感谢大家!

我的问题:作为第一步,我想确定给定整数列表中最频繁出现的值。作为第二步,如果有多个最频繁的值,我想选择其中一个最低的值。

示例:给出以下列表,我希望收到“ 5 ”,因为它是最低,最频繁出现的值。

list = [1,2,3,4,5,5,5,6,6,6,7,7,8,8,8]

能请你帮我吗?谢谢!

2 个答案:

答案 0 :(得分:1)

In [24]: list = [1,2,3,4,5,5,5,6,6,6,7,7,8,8,8]
    ...:

In [25]: max(sorted(set(list)), key=list.count)
Out[25]: 5

答案 1 :(得分:1)

使用内置的Counter类,可以在线性时间内从多个候选中获得最常见的值:

from collections import Counter

l = [1,2,3,4,5,5,5,6,6,6,7,7,8,8,8]
counter = Counter(l)
_, top_freq = counter.most_common(1)[0]
lower_most_common = min(key for key, freq in counter.items() if freq == top_freq)