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列表与元组详解实例
Nov 01 Python
利用Python实现网络测试的脚本分享
May 26 Python
Python使用openpyxl读写excel文件的方法
Jun 30 Python
Python标准库inspect的具体使用方法
Dec 06 Python
django在接受post请求时显示403forbidden实例解析
Jan 25 Python
pandas 选择某几列的方法
Jul 03 Python
python实现汉诺塔算法
Mar 01 Python
python实现统计文本中单词出现的频率详解
May 20 Python
Python实现PyPDF2处理PDF文件的方法示例
Sep 25 Python
jenkins配置python脚本定时任务过程图解
Oct 29 Python
Python ORM编程基础示例
Feb 02 Python
基于django2.2连oracle11g解决版本冲突的问题
Jul 02 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
简单的页面缓冲技术
2006/10/09 PHP
php的debug相关函数用法示例
2016/07/11 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
PHP连接MySQL数据库操作代码实例解析
2020/07/11 PHP
限制复选框的最大可选数
2006/07/01 Javascript
Js 本页面传值实现代码
2009/05/17 Javascript
js 延迟加载 改变JS的位置加快网页加载速度
2012/12/11 Javascript
ng-options和ng-checked在表单中的高级运用(推荐)
2017/01/21 Javascript
在vue中使用jointjs的方法
2018/03/24 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
Vue如何实现监听组件原生事件
2020/07/03 Javascript
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
Python学习笔记之os模块使用总结
2014/11/03 Python
给你选择Python语言实现机器学习算法的三大理由
2017/11/15 Python
python机器学习实战之K均值聚类
2017/12/20 Python
Python批量合并有合并单元格的Excel文件详解
2018/04/05 Python
15行Python代码实现网易云热门歌单实例教程
2019/03/10 Python
python学习--使用QQ邮箱发送邮件代码实例
2019/04/16 Python
python 随机生成10位数密码的实现代码
2019/06/27 Python
使用python实现男神女神颜值打分系统(推荐)
2019/10/31 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
如何用Anaconda搭建虚拟环境并创建Django项目
2020/08/02 Python
Python 里最强的地图绘制神器
2021/03/01 Python
实例讲解使用SVG制作loading加载动画的方法
2016/04/05 HTML / CSS
div或img图片高度随宽度自适应的方法
2020/02/06 HTML / CSS
Banana Republic英国官网:香蕉共和国,GAP集团旗下偏贵族风
2018/04/24 全球购物
美国玩具公司:U.S.Toy
2018/05/19 全球购物
取保候审保证书
2014/04/30 职场文书
2015元旦标语横幅
2014/12/09 职场文书
廉洁自律个人总结
2015/02/14 职场文书
浅谈如何提高PHP代码的质量
2021/05/28 PHP
Python中的套接字编程是什么?
2021/06/21 Python
SQLServer中JSON文档型数据的查询问题解决
2021/06/27 SQL Server
Oracle锁表解决方法的详细记录
2022/06/05 Oracle