Python中使用Counter进行字典创建以及key数量统计的方法
作者:grey_csdn 发布时间:2023-10-05 20:16:36
这里的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)]
来源:https://blog.csdn.net/grey_csdn/article/details/66551704
猜你喜欢
- 可以使用 Application 对象在给定的应用程序的所有用户之间共享信息。基于 ASP 的应用程序同所有的 .asp 文件一样在一个虚拟
- 一、前言 JDK(Java Development Kit )是一切java应用程序的基础,可以说,所有的java应用程序是构建
- 09年的电影缓缓的落下帷幕,以及新年伊始,轰轰烈烈催人癫狂的《阿凡达》。整年里,最让人我记忆深刻的还是《飞屋历险记》。Carl与Ellie被
- 询问度娘搭好appium和python环境,开启移动app自动化的探索(基于Android),首先来记录下如何启动待测的app吧!如何启动A
- \\create by ahuinan 2009-6-22 \\up by ahuian 2009-6-23 \\up by ahuinan
- 复制目录: 包含多层子目录方法: 递归, 深度遍历,广度遍历深度遍历&广度遍历:思路:1.获得源目录子级目录,并设置目标目录的子级路
- 前言在python中,print是重要的输出语句,让我们更方便的知道程序的运行状况,但是这样还不够,我们也可以用print来给周围的小伙伴秀
- 最近接触到一个心理学方面的理论:心流理论。大意是一种个人精力完全投注在某件事情上的感觉。心流产生时会有高度的兴奋和充实感。其实也就是说人在进
- 我们已经知道Application和Session对象的OnStart、OnEnd事件的脚本,都必须是在 Global.asa&n
- 本文实例讲述了Python序列对象与String类型内置方法。分享给大家供大家参考,具体如下:前言在Python数据结构篇中介绍了Pytho
- js浮点数计算有时是不准确的,比如7*0.8 == 7*8/10的值为false,因为7*0.8=5.6000000000000005,乘出
- 数据透视表(Pivot Table)是 Excel 中一个非常实用的分析功能,可以用于实现复杂的数据分类汇总和对比分析,是数据分析师和运营人
- 在php中实现验证码还是很方便的,关键点在于掌握php gd库与session的用法。纵观网上php 生成验证码的例子,无不是php gd库
- 1.我在一行结束后按回车键,就跳到隔一行的段落上,如何避免隔行跳到下一段落? A.在一行结束后先按着[Shift]键,再按回车就可以不隔行跳
- YUI3.2.0 的 transition 模块,通过使用 transition:end 事件实现在 transition 完成后执行其他操
- preface:做着最近的任务,对数据处理,做些简单的提特征,用机器学习算法跑下程序得出结果,看看哪些特征的组合较好,这一系列流程必然要用到
- 当元素设置浮动(float)后会被移出文档流,相信大家都会经常遇到这样的问题。这问题的解决办法有N种之多,因为每种浏览器对CSS的解析各异,
- WebSocket的作用WebSock其实在平常使用,我们是时常见到的,用于实时通讯,例如我们常用的实时聊天、服务端向客户端消息推送、也可以
- 1、从外部文档中粘贴时,如果不想要其格式,只要文字,可以使用“Edit->paste as text”命令,而不要直接Ctrl+V。2
- 第一章:霍夫变换检测圆① 实例演示1这个是设定半径范围 0-50 后的效果。② 实例演示2这个是设定半径范围 50-70 后的效果,因为原图