简单掌握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中的pass语句使用方法讲解
May 14 Python
Python os模块学习笔记
Jun 21 Python
Flask的图形化管理界面搭建框架Flask-Admin的使用教程
Jun 13 Python
Python实现生成随机数据插入mysql数据库的方法
Dec 25 Python
django 发送邮件和缓存的实现代码
Jul 18 Python
python 删除字符串中连续多个空格并保留一个的方法
Dec 22 Python
Python实现高斯函数的三维显示方法
Dec 29 Python
Python中typing模块与类型注解的使用方法
Aug 05 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
Feb 18 Python
python实现mask矩阵示例(根据列表所给元素)
Jul 30 Python
如何用Python搭建gRPC服务
Jun 30 Python
用Python爬取英雄联盟的皮肤详细示例
Dec 06 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
Jquery+ajax请求data显示在GridView上(asp.net)
2010/08/27 Javascript
基于jQuery实现最基本的淡入淡出效果实例
2015/02/02 Javascript
JavaScript使用RegExp进行正则匹配的方法
2015/07/11 Javascript
js带点自动图片轮播幻灯片特效代码分享
2015/09/07 Javascript
微信小程序 UI布局常用技巧整理总结
2016/12/05 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
2017/03/17 Javascript
详解ECMAScript6入门--Class对象
2017/04/27 Javascript
js获取一组日期中最近连续的天数
2017/05/25 Javascript
基于easyui checkbox 的一些操作处理方法
2017/07/10 Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
2017/07/16 Javascript
Vue侧滑菜单组件——DrawerLayout
2017/12/18 Javascript
JS实现验证码倒计时的注册页面
2018/01/02 Javascript
JS中touchstart事件与click事件冲突的解决方法
2018/03/12 Javascript
JavaScript解决浮点数计算不准确问题的方法分析
2018/07/09 Javascript
node.js到底要不要加分号浅析
2018/07/11 Javascript
vue如何使用async、await实现同步请求
2019/12/09 Javascript
记一次用ts+vuecli4重构项目的实现
2020/05/21 Javascript
python实现获取序列中最小的几个元素
2014/09/25 Python
Python3中简单的文件操作及两个简单小实例分享
2017/06/18 Python
深入理解Django的自定义过滤器
2017/10/17 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
2019/09/15 Python
英国著名的茶叶品牌:Whittard of Chelsea
2016/09/22 全球购物
UGG澳洲官网:UGG Australia
2018/04/26 全球购物
DERMAdoctor官网:美国著名皮肤护理品牌
2019/07/06 全球购物
Sandro法国官网:法国成衣品牌
2019/08/28 全球购物
英国办公家具网站:Furniture At Work
2019/10/07 全球购物
二年级体育教学反思
2014/01/15 职场文书
优秀毕业生自我鉴定
2014/01/19 职场文书
生产助理岗位职责
2014/06/18 职场文书
2015年党性分析材料
2014/12/19 职场文书
贷款承诺书
2015/01/20 职场文书
小学远程教育工作总结
2015/08/13 职场文书
大学迎新生的欢迎词
2019/06/25 职场文书
CocosCreator如何实现划过的位置显示纹理
2021/04/14 Javascript
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电
vue+iview实现手机号分段输入框
2022/03/25 Vue.js