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实现ftp客户端示例分享
Feb 17 Python
Python中返回字典键的值的values()方法使用
May 22 Python
Python的SQLalchemy模块连接与操作MySQL的基础示例
Jul 11 Python
Python有序查找算法之二分法实例分析
Dec 11 Python
Python SqlAlchemy动态添加数据表字段实例解析
Feb 07 Python
python爬虫自动创建文件夹的功能
Aug 01 Python
python程序快速缩进多行代码方法总结
Jun 23 Python
django 微信网页授权登陆的实现
Jul 30 Python
python如何求100以内的素数
May 27 Python
python一些性能分析的技巧
Aug 30 Python
Python OpenCV超详细讲解基本功能
Apr 02 Python
python在package下继续嵌套一个package
Apr 14 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
如何限制访问者的ip(PHPBB的代码)
2006/10/09 PHP
php判断页面是否是微信打开的示例(微信打开网页)
2014/04/25 PHP
PHP调用Linux命令权限不足问题解决方法
2015/02/07 PHP
PHP简单实现生成txt文件到指定目录的方法
2016/04/25 PHP
PHP那些琐碎的知识点(整理)
2017/05/20 PHP
PHP依赖注入(DI)和控制反转(IoC)详解
2017/06/12 PHP
Prototype使用指南之selector.js说明
2008/10/26 Javascript
JavaScript的9种继承实现方式归纳
2015/05/18 Javascript
基于JavaScript实现一定时间后去执行一个函数
2015/12/14 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
2016/03/11 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
jQuery向父辈遍历的简单方法
2016/09/18 Javascript
JS中BOM相关知识点总结(必看篇)
2016/11/22 Javascript
JS实现在文本指定位置插入内容的简单示例
2017/12/22 Javascript
vue将对象新增的属性添加到检测序列的方法
2018/02/24 Javascript
node结合swig渲染摸板的方法
2018/04/11 Javascript
详解Angular Forms中自定义ngModel绑定值的方式
2018/12/10 Javascript
微信内置浏览器图片查看器的代码实例
2019/10/08 Javascript
[38:40]2018DOTA2亚洲邀请赛 4.6淘汰赛 mineski vs LGD 第一场
2018/04/10 DOTA
[01:16:12]完美世界DOTA2联赛PWL S2 FTD vs Inki 第一场 11.21
2020/11/23 DOTA
pytorch使用Variable实现线性回归
2019/05/21 Python
Python自动化导出zabbix数据并发邮件脚本
2019/08/16 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
python遍历文件目录、批量处理同类文件
2019/08/31 Python
TensorFlow查看输入节点和输出节点名称方式
2020/01/04 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
2021/01/15 Python
CSS Grid布局教程之网格单元格布局
2014/12/30 HTML / CSS
CSS3 transition 实现通知消息轮播条
2020/10/14 HTML / CSS
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
Bitiba意大利:在线宠物商店
2020/10/31 全球购物
二年级小学生评语
2014/04/21 职场文书
法院信息化建设方案
2014/05/21 职场文书
十佳中学生事迹材料
2014/06/02 职场文书
2014年质量工作总结
2014/11/22 职场文书
bose降噪耳机音能消除人声吗
2022/04/19 数码科技
win sever 2022如何占用操作主机角色
2022/06/25 Servers