阅读背景:

如何统计序列中元素的频度

来源:互联网 

方案一:将序列转换为字典{元素:频度},根据字典中的值排序

#1.sorted排序
from random import randint
data = [randint(0, 20) for _ in range(30)] #创建数据
d = dict.fromkeys(data, 0) #创建字典
for x in data:
    d[x] += 1 #统计词频

#((v, k) for k, v in d.items()):生成器解析,所需空间少
sorted(((v, k) for k, v in d.items()), reverse=True)[:3] #根据词频排序并截取前3

#2.heapq(堆)
import heapq
#heapq.nlargest 取前n个最大;heapq.nsmallest 取前n个最小
heapq.nlargest(3, ((v, k) for k, v in d.items()))#1.sorted排序
from



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: