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实现的生成自我描述脚本分享(很有意思的程序)
Jul 18 Python
python实现微信远程控制电脑
Feb 22 Python
python将list转为matrix的方法
Dec 12 Python
Python实现KNN(K-近邻)算法的示例代码
Mar 05 Python
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
Jun 17 Python
python配置文件写入过程详解
Oct 19 Python
在python3中实现查找数组中最接近与某值的元素操作
Feb 29 Python
4行Python代码生成图像验证码(2种)
Apr 07 Python
python操作yaml说明
Apr 08 Python
Python实现迪杰斯特拉算法过程解析
Sep 18 Python
python归并排序算法过程实例讲解
Nov 04 Python
Python3 如何开启自带http服务
May 18 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中0,null,empty,空,false,字符串关系的详细介绍
2013/06/20 PHP
PHP获取数组的键与值方法小结
2015/06/13 PHP
js函数般调用正则
2008/04/08 Javascript
jQuery 仿百度输入标签插件附效果图
2014/07/04 Javascript
javascript面向对象之定义成员方法实例分析
2015/01/13 Javascript
javascript动态创建表格及添加数据实例详解
2015/05/13 Javascript
详解如何较好的使用js
2016/12/16 Javascript
原生js实现节日时间倒计时功能
2017/01/18 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
2017/04/24 Javascript
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
2018/11/01 NodeJs
微信小程序实现时间预约功能
2018/11/27 Javascript
cocos2dx+lua实现橡皮擦功能
2018/12/20 Javascript
详解element-ui设置下拉选择切换必填和非必填
2019/06/17 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
2020/10/27 Javascript
Javascript新手入门之字符串拼接与变量的应用
2020/12/03 Javascript
[08:47]DOTA2每周TOP10 精彩击杀集锦vol.6
2014/06/25 DOTA
用Python遍历C盘dll文件的方法
2015/05/06 Python
Python实现完整的事务操作示例
2017/06/20 Python
Python获取当前页面内所有链接的四种方法对比分析
2017/08/19 Python
python爬虫获取京东手机图片的图文教程
2017/12/29 Python
Python 中Pickle库的使用详解
2018/02/24 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2018/07/30 Python
mac PyCharm添加Python解释器及添加package路径的方法
2018/10/29 Python
FFT快速傅里叶变换的python实现过程解析
2019/10/21 Python
python3连接MySQL8.0的两种方式
2020/02/17 Python
学python需要去培训机构吗
2020/07/01 Python
详解CSS3伸缩布局盒模型Flex布局
2018/08/20 HTML / CSS
ProBikeKit英国:在线公路自行车之家
2017/02/10 全球购物
介绍一下Python中webbrowser的用法
2013/05/07 面试题
个人银行贷款担保书
2014/04/01 职场文书
倡议书范文
2014/04/16 职场文书
践行三严三实心得体会
2014/10/13 职场文书
2014年外贸业务员工作总结
2014/12/11 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
python迷宫问题深度优先遍历实例
2021/06/20 Python
防止web项目中的SQL注入
2021/12/06 MySQL