繁体   English   中英

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

[英]Python: Get the lowest, most frequent value of a list

嗨社区? 你能帮我解决以下问题吗? 我无法为我的问题找到有效的解决方案。 非常感谢任何帮助! 提前感谢大家!

我的问题:作为第一步,我想确定给定整数列表中最常见的值。 作为第二步,如果有多个最常见的值,我想取其中最低的一个。

示例:给定以下列表,我想收到“ 5 ”,因为它是最低、最频繁的值。

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

请你帮助我好吗? 谢谢!

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

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

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM