简单掌握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编写一个简单的tic-tac-toe游戏的教程
Apr 16 Python
在Python中使用mechanize模块模拟浏览器功能
May 05 Python
Linux中Python 环境软件包安装步骤
Mar 31 Python
Python用户推荐系统曼哈顿算法实现完整代码
Dec 01 Python
在pycharm中设置显示行数的方法
Jan 16 Python
python实现视频分帧效果
May 31 Python
Django ORM 聚合查询和分组查询实现详解
Aug 09 Python
python科学计算之narray对象用法
Nov 25 Python
keras 模型参数,模型保存,中间结果输出操作
Jul 06 Python
Python如何读写字节数据
Aug 05 Python
Kmeans均值聚类算法原理以及Python如何实现
Sep 26 Python
Python操作word文档插入图片和表格的实例演示
Oct 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
用Flash图形化数据(二)
2006/10/09 PHP
PHP结合Ueditor并修改图片上传路径
2016/10/16 PHP
php使用crypt()函数进行加密
2017/06/08 PHP
面向对象的Javascript之二(接口实现介绍)
2012/01/27 Javascript
javascript的数据类型、字面量、变量介绍
2012/05/23 Javascript
javascript简单事件处理和with用法介绍
2013/09/16 Javascript
JavaScript和CSS交互的方法汇总
2014/12/02 Javascript
jQuery过滤选择器详解
2015/01/13 Javascript
js检测判断日期大于多少天的方法
2015/05/04 Javascript
浅谈jQuery中height与width
2015/07/06 Javascript
vue分页组件table-pagebar使用实例解析
2020/11/15 Javascript
js替换字符串中所有指定的字符(实现代码)
2016/08/17 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
学习vue.js中class与style绑定
2016/12/03 Javascript
深入解析Vue 组件命名那些事
2017/07/18 Javascript
iView-admin 动态路由问题的解决方法
2018/10/03 Javascript
vue实现的双向数据绑定操作示例
2018/12/04 Javascript
vue+elementUI动态生成面包屑导航教程
2019/11/04 Javascript
如何将Node.js中的回调转换为Promise
2020/11/10 Javascript
python网络编程学习笔记(五):socket的一些补充
2014/06/09 Python
Python读取Json字典写入Excel表格的方法
2018/01/03 Python
Python基于更相减损术实现求解最大公约数的方法
2018/04/04 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
python随机模块random的22种函数(小结)
2020/05/15 Python
使用pyecharts1.7进行简单的可视化大全
2020/05/17 Python
html5写一个BUI折叠菜单插件的实现方法
2019/09/11 HTML / CSS
英国川宁茶官方网站:Twinings茶
2019/05/21 全球购物
俄罗斯韩国化妆品网上商店:Cosmasi.ru
2019/10/31 全球购物
2014年“世界无车日”活动方案
2014/09/21 职场文书
专业见习报告范文
2014/11/03 职场文书
2014年保密工作总结
2014/11/22 职场文书
2015年销售助理工作总结
2015/05/11 职场文书
于丹讲座视频观后感
2015/06/15 职场文书
学校2016年圣诞节活动总结
2016/03/31 职场文书
企业管理制度设计时要注意的几种“常见病”!
2019/04/19 职场文书
Oracle表空间与权限的深入讲解
2021/11/17 Oracle