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实现发送和获取手机短信验证码
Jan 15 Python
python先序遍历二叉树问题
Nov 10 Python
python调用OpenCV实现人脸识别功能
May 25 Python
Python3中函数参数传递方式实例详解
May 05 Python
Atom Python 配置Python3 解释器的方法
Aug 28 Python
如何基于Python实现数字类型转换
Feb 07 Python
python pptx复制指定页的ppt教程
Feb 14 Python
tensorflow中tf.reduce_mean函数的使用
Apr 19 Python
用python对oracle进行简单性能测试
Dec 05 Python
详解使用python爬取抖音app视频(appium可以操控手机)
Jan 26 Python
python常量折叠基础知识点讲解
Feb 28 Python
python 统计代码耗时的几种方法分享
Apr 02 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 Google的translate API代码
2008/12/10 PHP
Discuz!下Memcache缓存实现方法
2010/05/28 PHP
fleaphp rolesNameField bug解决方法
2011/04/23 PHP
PHP转换文件夹下所有文件编码的实现代码
2013/06/06 PHP
apache配置虚拟主机的方法详解
2013/06/17 PHP
Yii2框架使用计划任务的方法
2016/05/25 PHP
深入理解PHP中的empty和isset函数
2016/05/26 PHP
PHP页面输出时js设置input框的选中值
2016/09/30 PHP
jquery浏览器滚动加载技术实现方案
2014/06/03 Javascript
nodejs npm包管理的配置方法及常用命令介绍
2014/06/05 NodeJs
JsRender实用入门教程
2014/10/31 Javascript
浅谈JavaScript Date日期和时间对象
2014/12/29 Javascript
JavaScript判断DIV内容是否为空的方法
2016/01/29 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
2016/03/07 Javascript
常用的javascript设计模式
2017/01/11 Javascript
Angular实现下拉框模糊查询功能示例
2018/01/03 Javascript
Layui 设置select下拉框自动选中某项的方法
2018/08/14 Javascript
前后端如何实现登录token拦截校验详解
2018/09/03 Javascript
基于vue-upload-component封装一个图片上传组件的示例
2018/10/16 Javascript
微信小程序显示倒计时功能示例【测试可用】
2018/12/03 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
2019/06/13 Javascript
js实现简单的点名器随机色实例代码
2020/09/20 Javascript
Python使用正则匹配实现抓图代码分享
2015/04/02 Python
Python时间获取及转换知识汇总
2017/01/11 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
Python3 列表,数组,矩阵的相互转换的方法示例
2019/08/05 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
2021/01/29 Python
HTML5安全介绍之内容安全策略(CSP)简介
2012/07/10 HTML / CSS
使用Vue.js和MJML创建响应式电子邮件
2021/03/23 Vue.js
新年爱情寄语
2014/04/08 职场文书
护士节活动总结
2014/08/29 职场文书
合作意向协议书
2015/01/29 职场文书
祝寿主持词
2015/07/02 职场文书
酒店宣传语大全
2015/07/13 职场文书
仅用几行Python代码就能复制她的U盘文件?
2021/06/26 Python