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 yield 小结和实例
Apr 25 Python
Python实现的一个自动售饮料程序代码分享
Aug 25 Python
Python中的模块导入和读取键盘输入的方法
Oct 16 Python
Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
Sep 14 Python
selenium+python自动化测试之多窗口切换
Jan 23 Python
介绍一款python类型检查工具pyright(推荐)
Jul 03 Python
Django rest framework jwt的使用方法详解
Aug 08 Python
Python 爬取必应壁纸的实例讲解
Feb 24 Python
windows python3安装Jupyter Notebooks教程
Apr 13 Python
Python如何实现远程方法调用
Aug 07 Python
Python下载网易云歌单歌曲的示例代码
Aug 12 Python
python实现测试工具(一)——命令行发送get请求
Oct 19 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 array操作10个小技巧分享
2011/06/23 PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
2014/12/15 PHP
PHP获取一年有几周以及每周开始日期和结束日期
2015/08/06 PHP
EXT中xtype的含义分析
2010/01/07 Javascript
js给onclick事件赋值,动态传参数实例解说
2013/03/28 Javascript
JS中使用Array函数shift和pop创建可忽略参数的例子
2014/05/28 Javascript
JS实现仿微博可关闭弹出层效果
2015/09/21 Javascript
jQuery插件Timelinr 实现时间轴特效
2015/10/04 Javascript
js仿淘宝和百度文库的评分功能
2016/05/15 Javascript
使用plupload自定义参数实现多文件上传
2016/07/19 Javascript
JS仿hao123导航页面图片轮播效果
2016/09/01 Javascript
es6数据变更同步到视图层的方法
2019/03/04 Javascript
微信小程序中使用echarts的实现方法
2019/04/24 Javascript
我要点爆”微信小程序云开发之项目建立与我的页面功能实现
2019/05/26 Javascript
AngularJs中$cookies简单用法分析
2019/05/30 Javascript
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
2019/09/06 Javascript
解决layui的input独占一行的问题
2019/09/10 Javascript
vue实现百度搜索功能
2020/12/28 Javascript
layui的数据表格+springmvc实现搜索功能的例子
2019/09/28 Javascript
原生JS实现留言板
2020/03/26 Javascript
python实现socket客户端和服务端简单示例
2014/02/24 Python
python读取excel表格生成erlang数据
2017/08/26 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
2018/03/29 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
2019/06/26 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
2020/03/10 Python
UI自动化定位常用实现方法代码示例
2020/10/27 Python
python cookie反爬处理的实现
2020/11/01 Python
Redbubble法国:由独立艺术家设计的独特产品
2019/01/08 全球购物
Ellesse英国官网:意大利高级运动品牌
2019/07/23 全球购物
茱莉蔻美国官网:Jurlique美国
2020/11/24 全球购物
电子商务专业毕业生工作推荐信
2013/11/17 职场文书
银行服务感言
2014/03/01 职场文书
Django migrate报错的解决方案
2021/05/20 Python
redis中lua脚本使用教程
2021/11/01 Redis
MySQL脏读,幻读和不可重复读
2022/05/11 MySQL