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 ...
随机推荐
- 从服务端生成Excel电子表格(Node.js+SpreadJS)
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,通常用于创建网络应用程序.它可以同时处理多个连接,并且不像其他大多数模型那样依赖线程. 对于 Web 开发者来说,从数据库 ...
- css中设置背景图片适应屏幕
以body为例 body{ background: url(../img/jld.png) no-repeat center center fixed; -webkit-background-size ...
- python小兵 面向对象继承super和c3算法
python多继承 在前面的学习过程中. 我们已经知道了Python中类与类之间可以有继承关系. 当出现了x是一种y的的时候. 就可以使⽤继承关系. 即"is-a" 关系. 在继承 ...
- Elasticsearch(2) 数据搜索
本文介绍如何在Elasticsearch中对数据进行搜索. 1.简述 在Elasticsearch中的搜索中,有两类搜索: queries aggregations 区别在于:query可以进行全文搜 ...
- Collection和Map集合
前言 集合的长度是可变的.集合存储的都是对象.而且对象的类型可以不一致. Collection集合和Map集合是所有集合的父接口. Collection接口定义 体系结构的根接口,代表一组对象,有两个 ...
- PHP扩展开发编译环境的搭建
PHP允许使用扩展的方式,直接使用C语言开发PHP的功能,由于编译的问题,很多底层和框架的基础工作如果用PHP必然会带来额外的开销,降低系统的吞吐量,必然yaf就是这样的思路,把框架封装在扩展里,让系 ...
- Android利用zxing生成二维码
感谢大佬:https://blog.csdn.net/mountain_hua/article/details/80646089 **gayhub上的zxing可用于生成二维码,识别二维码 gayhu ...
- Java微信公众号服务器配置-验证Token
一.填写服务器配置 首先我们需要在微信公众平台上填写服务器配置 重点内容 服务器地址URL(一定要外网能访问的到) 在我们提交配置的时候,微信会发送GET请求到URL上, ...
- JSP页面乱码解决
1. tomcat 设置端口处加上 URIEncoding="UTF-8" 2. tomcat 的bin文件夹下的catalina.bat中如下位置加上如下编码:-Dfile.en ...
- MySQL 主从复制与读写分离 (超详细图文并茂小白闭着眼睛都会做)
MySQL 主从复制与读写分离 1.什么是读写分离 2.为什么要读写分离 3.什么时候要读写分离 4.主从复制与读写分离 5.mysql支持的复制类型 6.主从复制的工作过程 7.MySQL主从复制延 ...