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实现带声音的摩斯码翻译实现方法
May 20 Python
Python装饰器入门学习教程(九步学习)
Jan 28 Python
举例讲解Python设计模式编程中对抽象工厂模式的运用
Mar 02 Python
Python 数据结构之队列的实现
Jan 22 Python
Python Socket使用实例
Dec 18 Python
对python sklearn one-hot编码详解
Jul 10 Python
Python实现二叉搜索树BST的方法示例
Jul 30 Python
Python 日期与时间转换的方法
Aug 01 Python
Django rest framework分页接口实现原理解析
Aug 21 Python
详解python内置模块urllib
Sep 09 Python
pymysql模块使用简介与示例
Nov 17 Python
Python绘制词云图之可视化神器pyecharts的方法
Feb 23 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入门速成(2)
2006/10/09 PHP
注册页面之前先验证用户名是否存在的php代码
2012/07/14 PHP
Smarty变量调节器失效的解决办法
2014/08/20 PHP
php上传中文文件名乱码问题处理方案
2015/02/03 PHP
thinkphp整合系列之极验滑动验证码geetest功能
2019/06/18 PHP
PHP判断一个变量是否为整数、正整数的方法示例
2019/09/11 PHP
jquery事件preventDefault()方法用法实例
2015/01/16 Javascript
js运动应用实例解析
2015/12/28 Javascript
ajax跨域调用webservice的实现代码
2016/05/09 Javascript
Extjs让combobox写起来简洁又漂亮
2017/01/05 Javascript
JsChart组件使用详解
2018/03/04 Javascript
vue组件实现可搜索下拉框扩展
2020/10/23 Javascript
vue图片加载失败时用默认图片替换的方法
2019/08/29 Javascript
vue+koa2实现session、token登陆状态验证的示例
2019/08/30 Javascript
如何在vue项目中嵌入jsp页面的方法(2种)
2020/02/06 Javascript
JavaScript 禁止用户保存图片的实现代码
2020/04/28 Javascript
Vue数据双向绑定原理实例解析
2020/05/15 Javascript
JSONP 的原理、理解 与 实例分析
2020/05/16 Javascript
Python实现GUI学生信息管理系统
2020/04/05 Python
Python无损音乐搜索引擎实现代码
2018/02/02 Python
Python Tkinter模块实现时钟功能应用示例
2018/07/23 Python
Python高斯消除矩阵
2019/01/02 Python
python 将字符串中的数字相加求和的实现
2019/07/18 Python
Python编程中类与类的关系详解
2019/08/08 Python
马来西亚时装购物网站:ZALORA马来西亚
2017/03/14 全球购物
.NET程序员的几道面试题
2012/06/01 面试题
Linux内核产生并发的原因
2012/07/13 面试题
厂长助理岗位职责
2013/12/27 职场文书
创先争优活动方案
2014/02/12 职场文书
婚前协议书范本
2014/04/15 职场文书
岗位工作说明书
2014/07/29 职场文书
开服装店计划书
2014/08/15 职场文书
农村党支部书记党群众路线四风问题整改措施
2014/09/26 职场文书
车队安全员岗位职责
2015/02/15 职场文书
入团介绍人意见范文
2015/06/04 职场文书
SpringBoot中使用Redis作为全局锁示例过程
2022/03/24 Java/Android