码迷,mamicode.com
首页 > 编程语言 > 详细

Python:计数器collections.Counter

时间:2021-01-30 12:03:50      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:结果   合并   nmap   sdn   most   lines   mos   result   xtend   

collections是Python内建的一个集合模块,其中提供了许多有用的集合类:

namedtuple:只有属性的简易

deque:双向增删的List

ChainMap:多个字典的链接

Counter计数器

以及其他可以参考:10.8 模块:collections - ShineLe - 博客园

 

Counter

作用:统计参数中各元素出现的次数。如果参数是list,统计结果为list中每个元素的出现次数;如果参数是str,统计结果为str中每个字母的出现次数。

用法:

#list
L=[red, blue, red, green, blue, blue] c = Counter ( L ) c Counter({blue: 3, red: 2, green: 1})
#str
c=Counter(color) c Counter({o: 2, c: 1, l: 1, r: 1})

返回一个dict,可通过dict.items()方法提取,该方法返回一个List,List中的每个元素是一个tuple,tuple格式为( 元素 , 出现次数 )

c.items()
dict_items([(c, 1), (o, 2), (l, 1), (r, 1)])

学习自:(7条消息) Python collections.Counter()用法_qwe1257的博客-CSDN博客

例如:读文件统计词频并按照出现次数排序,文件有很多行,每行都是以空格隔开的单词

文件中的部分内容:

梨花 和善 友谊 生活
苹果 邪恶 朋友 工作
梨花 关系 成就 出发
……
from collections import Counter

with open(词语.txt,r,encoding=utf-8) as f :
        lines = f.readlines() #按行读取
        lines = [lines[i].split() for i in range(len(lines)) ]#去除词语间的空格
words = []
for line in lines:
    words.extend(line) #将所有词语合并到一个list中
result = Counter(words)
print(result.most_common(10)) #输出频次最高的10个词语

 

Python:计数器collections.Counter

标签:结果   合并   nmap   sdn   most   lines   mos   result   xtend   

原文地址:https://www.cnblogs.com/ShineLeBlog/p/14346652.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!