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 ...
随机推荐
- 阿里智能运维实践|阿里巴巴DevOps实践指南
编者按:本文源自阿里云云效团队出品的<阿里巴巴DevOps实践指南>,扫描上方二维码或前往:https://developer.aliyun.com/topic/devops,下载完整版电 ...
- VC++线程同步之临界区(CriticalSection)
1.相关文件和接口 #include <windows.h> CRITICAL_SECTION cs;//定义临界区对象 InitializeCriticalSection(&cs ...
- Lesson3——Pandas Series结构
1 什么是Series结构? Series 结构,也称 Series 序列,是 Pandas 常用的数据结构之一,它是一种类似于一维数组的结构,由一组数据值(value)和一组标签组成,其中标签与数据 ...
- 使用Typora+PicGo实现图片自动上传到Gitee图床
一.前言 我们在使用Typora编辑器时,会加上图片,有个弊端,只能在本地访问,你发送给别人就无法查看图片,当然可以导出pdf.小编这边的需求是这样的,自己搭建的一个博客系统,基于Hexo搭建的,这个 ...
- iconv(gb2312<->utf-8)
转载请注明来源:https://www.cnblogs.com/hookjc/ unix下安装PHP的module,需要重新编译PHP,Windows下安装模板,只需将php.ini里的配置打开相应的 ...
- idea的jar文件,“java.lang.SecurityException: Invalid signature file digest for Manifest main attribute
感谢大佬:https://blog.csdn.net/mingyuli/article/details/84674483 命令行运行jar出现问题: 1.找不到主类.打开jar文件包,在MANIFES ...
- webpack热更新 同时导出文件到本地
webpack 配置热更新后,文件配置导出到本地 安装 npm i webpack-dev-server-output --save-dev 引入 const WebpackDevServerOutp ...
- Jmeter测试dubbo接口填坑
通过jmeter测试dubbo的方法网上有很多帖子,需要的自己度娘去就可以. 使用的时候有个问题需要提示一下,因为我碰到了,还耽误了一些时间,不说中间的过程.直接说处理方式: 问题是这样的: 将dub ...
- Java对数组的复制[转]
原文地址http://x10232.iteye.com/blog/2230762 定义一个数组 int[] a={3,1,4,2,5}: int[] b=a: int[] a={3,1,4,2,5}: ...
- Static块和类加载顺序
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11451040.html 版本:Java8 直接上代码: public class Stati ...