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 相关文章推荐
天翼开放平台免费短信验证码接口使用实例
Dec 18 Python
ubuntu中配置pyqt4环境教程
Dec 27 Python
Python中协程用法代码详解
Feb 10 Python
python使用Flask操作mysql实现登录功能
May 14 Python
python 列表降维的实例讲解
Jun 28 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
Jul 04 Python
用python一行代码得到数组中某个元素的个数方法
Jan 28 Python
python使用Paramiko模块实现远程文件拷贝
Apr 30 Python
Python分布式进程中你会遇到的问题解析
May 28 Python
详解python statistics模块及函数用法
Oct 27 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
Jul 13 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
Jan 05 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 冒泡排序 交换排序法
2011/05/10 PHP
php中调用其他系统http接口的方法说明
2014/02/28 PHP
php读取目录所有文件信息dir示例
2014/03/18 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
2016/01/08 PHP
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
jquery之超简单的div显示和隐藏特效demo(分享)
2013/07/09 Javascript
编程语言JavaScript简介
2014/10/16 Javascript
js实现双击图片放大单击缩小的方法
2015/02/17 Javascript
AngularJS基础学习笔记之控制器
2015/05/10 Javascript
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
2016/07/26 NodeJs
JS 实现Base64编码与解码实例详解
2016/11/07 Javascript
Angular JS 生成动态二维码的方法
2017/02/23 Javascript
js实现抽奖效果
2017/03/27 Javascript
bootstrap日期插件daterangepicker使用详解
2017/10/19 Javascript
JS基于递归实现网页版计算器的方法分析
2017/12/20 Javascript
原生js实现省市区三级联动代码分享
2018/02/12 Javascript
浅谈发布订阅模式与观察者模式
2019/04/09 Javascript
记录微信小程序 height: calc(xx - xx);无效问题
2019/12/30 Javascript
haskell实现多线程服务器实例代码
2013/11/26 Python
全面了解Python环境配置及项目建立
2016/06/30 Python
python爬取m3u8连接的视频
2018/02/28 Python
python3正则提取字符串里的中文实例
2019/01/31 Python
Python脚本按照当前日期创建多级目录
2019/03/01 Python
python简单鼠标自动点击某区域的实例
2019/06/25 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
tensorflow实现二维平面模拟三维数据教程
2020/02/11 Python
英国网上超市:Ocado
2020/03/05 全球购物
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
料理师求职信
2014/01/30 职场文书
长江三峡导游词
2015/01/31 职场文书
2015年保洁员工作总结
2015/05/04 职场文书
给下属加薪申请报告
2015/05/15 职场文书
python实现过滤敏感词
2021/05/08 Python
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python
SQL IDENTITY_INSERT作用案例详解
2021/08/23 MySQL
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
2022/04/07 Servers