Python:collections.Counter
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})
返回一个Counter,虽然看起来和dict很像,但二者并不一样。
Counter转list和dict的方法为:
result_Counter=Counter(wordlist) #Counter类型
result_list = sorted(result_Counter.items(), key=lambda item: item[1], reverse=True)#list类型,而且顺序是排序后的
result_dict = dict(result_list)#dict类型
Counter中的元素可通过dict.items()方法提取,该方法返回一个List,List中的每个元素是一个tuple,tuple格式为( 元素 , 出现次数 )
c.items()
dict_items([('c', 1), ('o', 2), ('l', 1), ('r', 1)])
需要注意的是,返回的List中的元素并不是排序后的,所以要想得到排序后的list与dict,还是需要用上文提到的方法
学习自:(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的更多相关文章
- python:collections模块
Counter类 介绍:A counter tool is provided to support convenient and rapid tallies 构造:class collections. ...
- Python:collections的deque()方法
转于:https://www.cnblogs.com/zhenwei66/p/6598996.html 博主:http://www.cnblogs.com/zhenwei66/(渐晨) python3 ...
- 一道算法题,引出collections.Counter的特殊用法
题目描述: 题目编号:1002. 查找常用字符 给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表.例如,如果一个字符在每个字符串中出现 3 次, ...
- Python 第三篇(下):collections系列、集合(set)、单双队列、深浅copy、内置函数
一.collections系列: collections其实是python的标准库,也就是python的一个内置模块,因此使用之前导入一下collections模块即可,collections在py ...
- python常用模块(1):collections模块和re模块(正则表达式详解)
从今天开始我们就要开始学习python的模块,今天先介绍两个常用模块collections和re模块.还有非常重要的正则表达式,今天学习的正则表达式需要记忆的东西非常多,希望大家可以认真记忆.按常理来 ...
- python标准库:collections和heapq模块
http://blog.csdn.net/pipisorry/article/details/46947833 python额外的数据类型.collections模块和heapq模块的主要内容. 集合 ...
- 转载:Python中collections模块
转载自:Python中collections模块 目录 Python中collections模块 Counter defaultdict OrderedDict namedtuple deque Ch ...
- python collections.Counter笔记
Counter是dict的子类,所以它其实也是字典.只不过它的键对应的值都是计数,值可以是任意整数.下面是四种创建Counter实例的例子: >>> c = Counter() # ...
- python初探-collections容器数据类型
collections容器数据类型是对基本数据类型的补充,简单介绍下计数器.有序字典.默认字典.可命名元祖.队列. 计数器(Counter) Counter是对字典类型的补充,用于追踪值得出现次数 c ...
随机推荐
- 感恩陪伴 HelloGitHub 定制的红包封面
距离放假越来越近了,我们更文的频率也越来越低了. 先别打!听我解释... 我真没偷懒,我是去研究今年的「微信红包封面」玩法了. 这不去年,我们制作的 HelloGitHub 专属红包封面,很多粉丝都说 ...
- asp.net core监控—引入Prometheus(三)
上一篇博文中说到Prometheus有四种指标类型:Counter(计数器).Gauge(仪表盘).Histogram(直方图).Summary(摘要),并且我们做了一个Counter的Demo,接下 ...
- 【建议收藏】Redis超详细入门教程大杂烩
写在前边 Redis入门的整合篇.本篇也算是把2021年redis留下来的坑填上去,重新整合了一翻,点击这里,回顾我的2020与2021~一名大二后台练习生 NoSQL NoSQL(NoSQL = N ...
- 关于https域名下的页面iframe嵌套http页面的问题
业务场景:在一个https域名下用iframe嵌套一个http域名的页面,会直接报错的,报错信息如下: 这段话的意思是:http域名的页面是通过https域名页面加载的,在一个安全的页面不允许加载一个 ...
- get方式和post方式的区别
1.请求的URL地址不同: post:"http://192.168.13.83:8080/itheima74/servlet/LoginServlet" ...
- 学习JDBC遇到的一些问题
1. 数据库版本与驱动对应问题 参考官方文档:https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-versions.html 具体详情还需 ...
- 关于unix下cp命令复制权限不够的问题
例如要将mysql-5.7.17-macos10.12-x86_64.tar.gz 拷贝到/usr/local目录下时,执行cp mysql-5.7.17-macos10.12-x86_64.tar. ...
- Nginx网站服务 配置
Nginx网站服务 配置 1.编译安装Nginx服务 2.认识Nginx服务的主配置文件nginx.conf 3.访问状态统计配置 4.基于授权的访问控制 5.基于客户端的访问控制 6.基于域名的Ng ...
- serverless入门介绍
1.什么是serverless Serverless 架构作为一种新型的云计算范式,是云原生时代一种革命性的架构,颠覆了传统意义上对软件应用部署和运营的认识.本节对 Serverless 架构的基本概 ...
- Solution -「CF 804F」Fake bullions
\(\mathcal{Description}\) Link. 给定 \(n\) 个点的竞赛图,第 \(i\) 个点代表了 \(s_i\) 个人,每个人(0-based)可能有真金条.此后在 ...