简单掌握Python的Collections模块中counter结构的用法


Posted in Python onJuly 07, 2016

counter 是一种特殊的字典,主要方便用来计数,key 是要计数的 item,value 保存的是个数。

from collections import Counter

>>> c = Counter('hello,world')
Counter({'l': 3, 'o': 2, 'e': 1, 'd': 1, 'h': 1, ',': 1, 'r': 1, 'w': 1})

初始化可以传入三种类型的参数:字典,其他 iterable 的数据类型,还有命名的参数对。

| __init__(self, iterable=None, **kwds)
 |  Create a new, empty Counter object. And if given, count elements
 |  from an input iterable. Or, initialize the count from another mapping
 |  of elements to their counts.
 |
 |  >>> c = Counter()       # a new, empty counter
 |  >>> c = Counter('gallahad')     # a new counter from an iterable
 |  >>> c = Counter({'a': 4, 'b': 2})   # a new counter from a mapping
 |  >>> c = Counter(a=4, b=2)     # a new counter from keyword args

默认请求下,访问不存在的 item,会返回 0。Counter 可以用来统计某些数据的出现次数,比如一个很长的数字串 numbers = "67642192097348921647512014651027586741512651" 中每个数字的频率:

>>> c = Counter(numbers) # c 存储了每个数字的频率
>>> c.most_common()  # 所有数字按照频率排序。如果 most_common 接受了 int 参数 n,将返回频率前n 的数据,否则会返回所有的数据
[('1', 8),
 ('2', 6),
 ('6', 6),
 ('5', 5),
 ('4', 5),
 ('7', 5),
 ('0', 3),
 ('9', 3),
 ('8', 2),
 ('3', 1)]

此外,你还可以对两个 Counter 对象进行 +, -,min, max 等操作。

综合示例:

print('Counter类型的应用') 
c = Counter("dengjingdong") 
#c = Counter({'n': 3, 'g': 3, 'd': 2, 'i': 1, 'o': 1, 'e': 1, 'j': 1}) 
print("原始数据:",c) 
print("最多的两个元素:",c.most_common(2))#输出数量最多的元素 
print("d的个数:",c['d'])#输出d的个数 
print(c.values())#输出字典的value列表 
print(sum(c.values()))#输出总字符数 
print(sorted(c.elements()))#将字典中的数据,按字典序排序 
print('\n\n') 
""" 
#删除所有d元素 
del c['d'] 
b = Counter("dengxiaoxiao") 
#通过subtract函数删除元素,元素个数可以变成负数。 
c.subtract(b) 
""" 
 
""" 
可以添加数据 
b = Counter("qinghuabeida") 
c.update(b) 
"""
Python 相关文章推荐
新手该如何学python怎么学好python?
Oct 07 Python
Python实现的径向基(RBF)神经网络示例
Feb 06 Python
利用python 更新ssh 远程代码 操作远程服务器的实现代码
Feb 08 Python
Python 通过调用接口获取公交信息的实例
Dec 17 Python
Python 二叉树的层序建立与三种遍历实现详解
Jul 29 Python
python之yield和Generator深入解析
Sep 18 Python
Tensorflow: 从checkpoint文件中读取tensor方式
Feb 10 Python
Python2 与Python3的版本区别实例分析
Mar 30 Python
Windows下Anaconda安装、换源与更新的方法
Apr 17 Python
Python求解排列中的逆序数个数实例
May 03 Python
Python爬虫实现百度翻译功能过程详解
May 29 Python
Python如何将将模块分割成多个文件
Aug 04 Python
Python处理json字符串转化为字典的简单实现
Jul 07 #Python
全面了解python字符串和字典
Jul 07 #Python
对于Python中RawString的理解介绍
Jul 07 #Python
python变量不能以数字打头详解
Jul 06 #Python
Python中shutil模块的常用文件操作函数用法示例
Jul 05 #Python
详解Python中的array数组模块相关使用
Jul 05 #Python
简单掌握Python中glob模块查找文件路径的用法
Jul 05 #Python
You might like
PHPExcel内存泄漏问题解决方法
2015/01/23 PHP
利用PHP fsockopen 模拟POST/GET传送数据的方法
2015/09/22 PHP
php时间函数用法分析
2016/05/28 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
2019/10/11 PHP
Thinkphp页面跳转设置跳转等待时间的操作
2019/10/16 PHP
JavaScript 数组运用实现代码
2010/04/13 Javascript
Fixie.js 自动填充内容的插件
2012/06/28 Javascript
JavaScript等比例缩放图片控制超出范围的图片
2013/08/06 Javascript
JS方法调用括号的问题探讨
2014/01/24 Javascript
用js正确判断用户名cookie是否存在的方法
2014/01/28 Javascript
javascript操作ul中li的方法
2015/05/14 Javascript
js倒计时简单实现代码
2016/08/11 Javascript
Bootstrap标签页(Tab)插件使用方法
2017/03/21 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
深究AngularJS之ui-router详解
2017/06/13 Javascript
ReactNative短信验证码倒计时控件的实现代码
2017/07/20 Javascript
解决vue项目F5刷新mounted里的函数不执行问题
2019/11/05 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
浅谈python中的getattr函数 hasattr函数
2016/06/14 Python
Python标准库笔记struct模块的使用
2018/02/22 Python
python矩阵转换为一维数组的实例
2018/06/05 Python
python数据预处理之数据标准化的几种处理方式
2019/07/17 Python
python利用os模块编写文件复制功能——copy()函数用法
2020/07/13 Python
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
Python面试题:Python是如何进行内存管理的
2014/08/04 面试题
思想政治教育专业个人求职信范文
2013/12/20 职场文书
小学生成长感言
2014/01/30 职场文书
初三政治教学反思
2014/01/30 职场文书
文员求职信
2014/07/15 职场文书
党员作风建设自查报告
2014/10/23 职场文书
加强干部作风建设整改方案
2014/10/24 职场文书
关于迟到的检讨书
2015/05/06 职场文书
浅谈sql_@SelectProvider及使用注意说明
2021/08/04 Java/Android
java executor包参数处理功能 
2022/02/15 Java/Android
PHP 时间处理类Carbon
2022/05/20 PHP
Python创建SQL数据库流程逐步讲解
2022/09/23 Python