python统计频数_Python 统计次数,我的方法和高手的方法

统计一个序列中出现次数最多的元素,你能有几种方法?

第一种最原始的方法:

直接使用字典硬来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] ,reverse=True)

print(result)

result2=[]

for i in range(3):

result2.insert(i,result[i])

print(result2)

第三种,高手的方法from collections import Counter

from random import randint

#创建一个序列

list=[randint(0,20) for _ in range(100)]

#用Counter统计

c=Counter(list)

print(c)

#统计最高出现频度的结果

c2=c.most_common(3)

print(c2)

你可能感兴趣的:(python统计频数)