简单掌握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下MySQLdb用法实例分析
Jun 08 Python
Centos Python2 升级到Python3的简单实现
Jun 21 Python
Python实现简单的四则运算计算器
Nov 02 Python
python opencv之分水岭算法示例
Feb 24 Python
利用selenium爬虫抓取数据的基础教程
Jun 10 Python
使用PyOpenGL绘制三维坐标系实例
Dec 24 Python
tensorflow 自定义损失函数示例代码
Feb 05 Python
python利用 keyboard 库记录键盘事件
Oct 16 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
Feb 07 Python
详解python日志输出使用配置文件格式
Feb 10 Python
用Python将库打包发布到pypi
Apr 13 Python
python如何读取和存储dict()与.json格式文件
Jun 25 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
coreseek 搜索英文的问题详解
2013/06/08 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
2014/04/02 PHP
PHP链表操作简单示例
2016/10/15 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
一个奇葩的最短的 IE 版本判断JS脚本
2014/05/28 Javascript
jQuery获取DOM节点实例分析(2种方式)
2015/12/15 Javascript
基于JavaScript短信验证码如何实现
2016/01/24 Javascript
angular2使用简单介绍
2016/03/01 Javascript
jQuery实现点击水纹波动动画
2016/04/10 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
Node.js实现连接mysql数据库功能示例
2017/09/15 Javascript
使用react实现手机号的数据同步显示功能的示例代码
2018/04/03 Javascript
基于Vue SEO的四种方案(小结)
2019/07/01 Javascript
小程序如何支持使用 async/await详解
2019/09/12 Javascript
js+for循环实现字符串自动转义的代码(把后面的字符替换前面的字符)
2020/12/24 Javascript
初学Python实用技巧两则
2014/08/29 Python
Python字符串格式化%s%d%f详解
2018/02/02 Python
Python使用 Beanstalkd 做异步任务处理的方法
2018/04/24 Python
PyGame贪吃蛇的实现代码示例
2018/11/21 Python
python打开文件的方式有哪些
2020/06/29 Python
CSS3轻松实现清新 Loading 效果的简单实例
2016/06/06 HTML / CSS
金牌葡萄酒俱乐部:Gold Medal Wine Club
2017/11/02 全球购物
意大利制造的西装、衬衫和针对男士量身定制的服装:Lanieri
2018/04/08 全球购物
King Apparel官网:英国街头服饰品牌
2019/09/05 全球购物
预备党员党校学习自我评价分享
2013/11/12 职场文书
岗位职责范本
2013/11/23 职场文书
中医临床专业自我鉴定范文
2014/01/15 职场文书
小学班主任培训方案
2014/06/04 职场文书
商铺门前三包责任书
2014/07/25 职场文书
房屋租赁授权委托书范本
2014/09/20 职场文书
2014年社区综治工作总结
2014/11/17 职场文书
2015年母亲节寄语
2015/03/23 职场文书
小学数学教师研修日志
2015/11/13 职场文书
Vue3中的Refs和Ref详情
2021/11/11 Vue.js
Java如何实现通过键盘输入一个数组
2022/02/15 Java/Android
基于Python实现nc批量转tif格式
2022/08/14 Python