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获取当前时间的方法
Jan 14 Python
python连接mysql调用存储过程示例
Mar 05 Python
Django在Win7下的安装及创建项目hello word简明教程
Jul 14 Python
利用Python批量生成任意尺寸的图片
Aug 29 Python
python 读写、创建 文件的方法(必看)
Sep 12 Python
python中将zip压缩包转为gz.tar的方法
Oct 18 Python
Python 实现文件打包、上传与校验的方法
Feb 13 Python
Python操作SQLite数据库过程解析
Sep 02 Python
Python中的 ansible 动态Inventory 脚本
Jan 19 Python
Java爬虫技术框架之Heritrix框架详解
Jul 22 Python
Python tkinter制作单机五子棋游戏
Sep 14 Python
selenium学习教程之定位以及切换frame(iframe)
Jan 04 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公用函数列表[正则]
2007/02/22 PHP
php adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
php sprintf()函数让你的sql操作更安全
2008/07/23 PHP
php像数组一样存取和修改字符串字符
2014/03/21 PHP
PHP的一个完美GIF等比缩放类,附带去除缩放黑背景
2014/04/01 PHP
php数组合并array_merge()函数使用注意事项
2014/06/19 PHP
关于jQuery的inArray 方法介绍
2011/10/08 Javascript
基于jQuery的公告无限循环滚动实现代码
2012/05/11 Javascript
javascript实现限制上传文件大小
2015/02/06 Javascript
jQuery切换所有复选框选中状态的方法
2015/07/02 Javascript
javascript数组排序汇总
2015/07/07 Javascript
AngularJS 2.0新特性有哪些
2016/02/18 Javascript
浅谈React 属性和状态的一些总结
2016/11/21 Javascript
Ionic + Angular.js实现图片轮播的方法示例
2017/05/21 Javascript
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
jQuery事件对象的属性和方法详解
2017/09/09 jQuery
VUE实现一个分页组件的示例
2017/09/13 Javascript
JavaScript实用代码小技巧
2018/08/23 Javascript
element-ui 中的table的列隐藏问题解决
2018/08/24 Javascript
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
JS中this的4种绑定规则详解
2020/02/04 Javascript
原生JS实现多条件筛选
2020/08/19 Javascript
[02:03]风行者至宝清风环佩外观展示
2020/09/05 DOTA
简单实现python数独游戏
2018/03/30 Python
对python_discover方法遍历所有执行的用例详解
2019/02/13 Python
解决Python3 被PHP程序调用执行返回乱码的问题
2019/02/16 Python
使用darknet框架的imagenet数据分类预训练操作
2020/07/07 Python
基本款天堂:Everlane
2017/05/13 全球购物
Stio官网:男女、儿童户外服装
2019/12/13 全球购物
Servlet如何得到客户端机器的信息
2014/10/17 面试题
中学生打架检讨书
2014/02/10 职场文书
2014年小学元旦活动方案
2014/02/12 职场文书
公关活动策划方案
2014/05/25 职场文书
手机销售员岗位职责
2015/04/11 职场文书
oracle表分区的概念及操作
2021/04/24 Oracle
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python