Python中使用Counter进行字典创建以及key数量统计的方法


Posted in Python onJuly 06, 2018

这里的Counter是指collections中的Counter,通过Counter可以实现字典的创建以及字典key出现频次的统计。然而,使用的时候还是有一点需要注意的小事项。

使用Counter创建字典通常有4种方式。其中,第一种方式是不带任何参数创建一个空的字典。剩下的三种分别在下面通过简单的代码进行演示。

创建方法2示范代码:

need python.'
cell1 =(2,2,3,5,5,4,3,2,1,1,2,3,3,2,2)
list1 =[2,2,3,5,5,4,3,2,1,1,2,3,3,2,2]
 
c1 = Counter(str1)
c2 =Counter(cell1)
c3 =Counter(list1)
 
print('c1is:'),c1.items()
print('c2is:'),c2.items()
print('c3is:'),c3.items()

运行结果如下:

E:\WorkSpace\05_数据分析\01_利用Python进行数据分析\第02章_引言>pythoncounter.py

c1 is: [(' ', 5),('e', 3), ('d', 1), ('f', 1), ('i', 2), ('h', 2), ('l', 1), ('o', 3), (',', 1),('p', 1), ('s', 2), ('r', 1), ('u', 1), ('t', 2), ('.', 1), ('y', 2), ('n', 2)]
c2 is: [(1, 2),(2, 6), (3, 4), (4, 1), (5, 2)]
c3 is: [(1, 2),(2, 6), (3, 4), (4, 1), (5, 2)]

这三种创建方法都属于一类,只要是传入的对象是一个可迭代的对象都能够通过Counter构建出一个字典。

构建方法3示范代码:

from collectionsimport Counter
 
d1 ={'apple':5,'pear':2,'peach':3}
c1 = Counter(d1)
print(c1.items())

程序的运行结果如下:

E:\WorkSpace\05_数据分析\01_利用Python进行数据分析\第02章_引言>pythonexp1.py

[('pear', 2),('apple', 5), ('peach', 3)]

第4中构建方法示范代码如下:

from collectionsimport Counter
 
c1 = Counter(apple= 7,xiaomi = 5,oppo = 9)
print(c1.items())

程序运行结果如下:

E:\WorkSpace\05_数据分析\01_利用Python进行数据分析\第02章_引言>pythonexp2.py

[('xiaomi', 5),('oppo', 9), ('apple', 7)]

其实在一定程度上,第三种方式跟一般的字典也就没太大差异了,那么这个Counter构造的对象又有什么不同呢?其实,这里面多了一个统计的通能。

举例用的简化代码如下:

from collectionsimport Counter
 
str1 = 'Life isshort, you need python.'
c1 = Counter(str1)
print(c1.items())
print(c1['i'])
print(c1['e'])
print(c1.most_common(5))

运行结果如下:

E:\WorkSpace\05_数据分析\01_利用Python进行数据分析\第02章_引言>pythonexp3.py

[(' ', 5), ('e',3), ('d', 1), ('f', 1), ('i', 2), ('h', 2), ('L', 1), ('o', 3), (',', 1), ('p',1), ('s', 2), ('r', 1), ('u', 1), ('t', 2), ('.', 1), ('y', 2), ('n', 2)]
2
3
[(' ', 5), ('e',3), ('o', 3), ('i', 2), ('h', 2)]

从以上结果可以看出,通过这种方法构建的对象不仅能够具有字典的属性,同时还可以统计key的数目并且通过相应的方法输出最高几项的清单。

除此之外,还可以对生成的对象进行修改,比如修改其value。如果key不存在的时候统计数为0,但是统计数为0并不意味着没有这个key。也就是说不能够通过赋值为0的方式删除其中的元素。

具体的演示代码如下:

from collectionsimport Counter
 
str1 = 'Life isshort, you need python.'
c1 = Counter(str1)
print(c1.items())
print(c1['i'])
c1['i'] = 0
print(c1['i'])
print(c1.items())
del c1['i']
print(c1.items()

程序运行结果:

E:\WorkSpace\05_数据分析\01_利用Python进行数据分析\第02章_引言>pythonexp3.py

[(' ', 5), ('e',3), ('d', 1), ('f', 1), ('i', 2), ('h', 2), ('L', 1), ('o', 3), (',', 1), ('p',1), ('s', 2), ('r', 1), ('u', 1), ('t', 2), ('.', 1), ('y', 2), ('n', 2)]
2
0
[(' ', 5), ('e',3), ('d', 1), ('f', 1), ('i', 0), ('h', 2), ('L', 1), ('o', 3), (',', 1), ('p',1), ('s', 2), ('r', 1), ('u', 1), ('t', 2), ('.', 1), ('y', 2), ('n', 2)]
[(' ', 5), ('e',3), ('d', 1), ('f', 1), ('h', 2), ('L', 1), ('o', 3), (',', 1), ('p', 1), ('s',2), ('r', 1), ('u', 1), ('t', 2), ('.', 1), ('y', 2), ('n', 2)]

以上这篇Python中使用Counter进行字典创建以及key数量统计的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的Flask框架中实现登录用户的个人资料和头像的教程
Apr 20 Python
一步步教你用Python实现2048小游戏
Jan 19 Python
Python语言描述随机梯度下降法
Jan 04 Python
Python使用re模块实现信息筛选的方法
Apr 29 Python
pandas 数据实现行间计算的方法
Jun 08 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
Jan 29 Python
WxPython建立批量录入框窗口
Feb 27 Python
详解Python odoo中嵌入html简单的分页功能
May 29 Python
python程序变成软件的实操方法
Jun 24 Python
解决Django连接db遇到的问题
Aug 29 Python
python常用运维脚本实例小结
Feb 14 Python
用Python提取PDF表格的方法
Apr 11 Python
python 字典 按key值大小 倒序取值的实例
Jul 06 #Python
对python字典元素的添加与修改方法详解
Jul 06 #Python
替换python字典中的key值方法
Jul 06 #Python
python 字典中文key处理,读取,比较方法
Jul 06 #Python
python迭代dict的key和value的方法
Jul 06 #Python
Python socket套接字实现C/S模式远程命令执行功能案例
Jul 06 #Python
python脚本监控Tomcat服务器的方法
Jul 06 #Python
You might like
php 表单验证实现代码
2009/03/10 PHP
php.ini save_handler 修改不生效的解决办法
2014/07/22 PHP
深入剖析浏览器退出之后php还会继续执行么
2016/05/17 PHP
PHP字符串与数组处理函数用法小结
2020/01/07 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
Jquery UI震动效果实现原理及步骤
2013/02/04 Javascript
利用ajaxfileupload插件实现文件上传无刷新的具体方法
2013/06/08 Javascript
js图片延迟技术一般的思路与示例
2014/03/20 Javascript
Egret引擎开发指南之运行项目
2014/09/03 Javascript
nodejs实现的一个简单聊天室功能分享
2014/12/06 NodeJs
更高效的使用JQuery 这里总结了8个小技巧
2016/04/13 Javascript
Bootstrap框架的学习教程详解(二)
2016/10/18 Javascript
javascript表单正则应用
2017/02/04 Javascript
canvas绘图不清晰的解决方案
2017/02/28 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
Vue-Router模式和钩子的用法
2018/02/28 Javascript
chosen实现省市区三级联动
2018/08/16 Javascript
vue中tab选项卡的实现思路
2018/11/25 Javascript
Vue.js实现大屏数字滚动翻转效果
2019/11/29 Javascript
[10:21]2018DOTA2国际邀请赛寻真——Winstrike
2018/08/11 DOTA
Python中基本的日期时间处理的学习教程
2015/10/16 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
2017/05/24 Python
python使用turtle绘制分形树
2018/06/22 Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
2020/01/14 Python
Python requests获取网页常用方法解析
2020/02/20 Python
在线学习西班牙语、法语或其他语言:Babbel.com
2018/02/07 全球购物
意大利奢侈品零售商:ilDuomo Novara
2019/09/11 全球购物
描述内存分配方式以及它们的区别
2016/10/15 面试题
优秀中学生事迹材料
2014/01/31 职场文书
律师授权委托书范本
2014/10/07 职场文书
预备党员群众路线思想汇报2014
2014/10/25 职场文书
初中同学会致辞
2015/08/01 职场文书
保护环境建议书作文400字
2015/09/14 职场文书
2016学校先进党组织事迹材料
2016/02/29 职场文书
Flask搭建一个API服务器的步骤
2021/05/28 Python
深入浅析python3 依赖倒置原则(示例代码)
2021/07/09 Python