简单掌握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学习数据结构实例代码
May 11 Python
python出现"IndentationError: unexpected indent"错误解决办法
Oct 15 Python
flask + pymysql操作Mysql数据库的实例
Nov 13 Python
使用Python的package机制如何简化utils包设计详解
Dec 11 Python
Django 生成登陆验证码代码分享
Dec 12 Python
浅谈python实现Google翻译PDF,解决换行的问题
Nov 28 Python
使用Python实现跳帧截取视频帧
May 31 Python
Python Numpy 自然数填充数组的实现
Nov 28 Python
Tensorflow: 从checkpoint文件中读取tensor方式
Feb 10 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
Feb 20 Python
用于ETL的Python数据转换工具详解
Jul 21 Python
Pandas中两个dataframe的交集和差集的示例代码
Dec 13 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
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
2017/07/10 PHP
PHP+MySQL实现模糊查询员工信息功能示例
2018/06/01 PHP
javascript函数以及基础写法100多条实用整理
2013/01/13 Javascript
jQuery自动切换/点击切换选项卡效果的小例子
2013/08/12 Javascript
jquery按回车提交数据的代码示例
2013/11/05 Javascript
jQuery实现的Div窗口震动特效
2014/06/09 Javascript
jQuery实现跟随鼠标运动图层效果的方法
2015/02/02 Javascript
JS+CSS实现大气清新的滑动菜单效果代码
2015/10/22 Javascript
javascript之Boolean类型对象
2016/06/07 Javascript
JavaScript中利用构造器函数模拟类的方法
2017/02/16 Javascript
jQuery实现元素的插入
2017/02/27 Javascript
百度小程序之间的页面通信过程详解
2019/07/18 Javascript
微信小程序 导入图标实现过程详解
2019/10/11 Javascript
解决vue的过渡动画无法正常实现问题
2019/10/31 Javascript
vue 中的动态传参和query传参操作
2020/11/09 Javascript
python3音乐播放器简单实现代码
2020/04/20 Python
Python用于学习重要算法的模块pygorithm实例浅析
2018/08/16 Python
Python os.rename() 重命名目录和文件的示例
2018/10/25 Python
Python实现的列表排序、反转操作示例
2019/03/13 Python
Python计算机视觉里的IOU计算实例
2020/01/17 Python
使用python批量修改XML文件中图像的depth值
2020/07/22 Python
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
四方通行旅游网:台湾订房、出国旅游
2017/09/20 全球购物
Giglio俄罗斯奢侈品购物网:男士、女士、儿童高级时装
2018/07/27 全球购物
Doyoueven官网:澳大利亚健身服饰和配饰品牌
2019/03/24 全球购物
英国顶级足球鞋的领先零售商:Lovell Soccer
2019/08/27 全球购物
俄罗斯金苹果网上化妆品和香水商店:Goldapple
2019/12/01 全球购物
应届生高等护理求职信
2013/10/12 职场文书
咖啡书吧创业计划书
2014/01/13 职场文书
行政专员岗位职责说明书
2014/07/30 职场文书
毕业生实习期转正自我鉴定
2014/09/26 职场文书
素质教育学习心得体会
2016/01/19 职场文书
查看nginx配置文件路径和资源文件路径的方法
2021/03/31 Servers
彩虹社八名人气艺人全新周边限时推出,性转女装男装一次拥有!
2022/04/01 日漫
mysql使用FIND_IN_SET和group_concat两个方法查询上下级机构
2022/04/20 MySQL