嗨,社区! 关于以下问题,您能帮我吗?我没有设法为我的问题找到有效的解决方案。任何帮助深表感谢!预先感谢大家!
我的问题:作为第一步,我想确定给定整数列表中最频繁出现的值。作为第二步,如果有多个最频繁的值,我想选择其中一个最低的值。
示例:给出以下列表,我希望收到“ 5 ”,因为它是最低,最频繁出现的值。
list = [1,2,3,4,5,5,5,6,6,6,7,7,8,8,8]
能请你帮我吗?谢谢!
答案 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)