统计一个序列中出现次数最多的元素,你能有几种方法?
第一种最原始的方法:
直接使用字典硬来from random import randint
#首先生成一个20个数的随机序列
list = [ randint(1,20) for i in range(100) ]
#然后去统计数量,思路就是用一个字典记录每个数字出现的次数
numCount = {}
for num in list:
if( num in numCount):
numCount[num] = numCount[num]+1
else:
numCount[num]=1
print(numCount)
#排序
print(sorted(numCount.items(),key=lambda x : x[1],reverse=True))
list=sorted(numCount.items(),key=lambda x : x[1],reverse=True)
for i in range(3):
print(list[i])
第二种,稍微简洁一点的方法from random import randint
#创建一个序列
list=[randint(0,20) for _ in range(100)]
#用序列中的值作为键,0作为值生成一个字典
data=dict.fromkeys(list,0)
for x in list:
data[x]+=1
#然后找到频数最高的三个数
result=sorted(data.items(),key=lambda x : x[1] ,reve