更多、更及时内容欢迎留意微信公众号: 小窗幽记机器学习
背景
给定一个列表,找到其中最高频的元素。
比如输入:
[2, 1, 2, 2, 1, 3]
期望输出:2
再比如输入:
['华中科技大学', '韵苑', '沁苑', '韵苑']
期望输出:韵苑
方法1:使用集合
def most_frequent(lst):
return max(set(lst), key=lst.count)
a=['华中科技大学', '韵苑', '沁苑', '韵苑']#[5,2,3,4] # ['华中科技大学', '韵苑', '沁苑', '韵苑']
print(most_frequent(a))
方法2:使用Counter
from collections import Counter
def most_frequent(lst):
occurence_count = Counter(lst)
return occurence_count.most_common(1)[0][0]
a=['华中科技大学', '韵苑', '沁苑', '韵苑']#[5,2,3,4] # ['华中科技大学', '韵苑', '沁苑', '韵苑']
print(most_frequent(a))
方法3:使用statistics中的mode
import statistics
from statistics import mode
def most_frequent(lst):
# 离散的或标称的数据的单个众数(出现最多的值)
return (mode(lst))
a=['华中科技大学', '韵苑', '沁苑', '韵苑']#[5,2,3,4] # ['华中科技大学', '韵苑', '沁苑', '韵苑']
print(most_frequent(a))
方法4:使用字典
字典统计保存元素及其频数。
def most_frequent(lst):
dict = {}
count, itm = 0, ''
for item in reversed(lst):
dict[item] = dict.get(item, 0) + 1
if dict[item] >= count:
count, itm = dict[item], item
return itm
a=['华中科技大学', '韵苑', '沁苑', '韵苑']#[5,2,3,4] # ['华中科技大学', '韵苑', '沁苑', '韵苑']
print(most_frequent(a))
【更多、更及时内容欢迎留意微信公众号: 小窗幽记机器学习 】