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 yield使用方法示例
Dec 04 Python
python中xrange和range的区别
May 13 Python
Python_LDA实现方法详解
Oct 25 Python
python并发编程之线程实例解析
Dec 27 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
Feb 10 Python
python实现微信远程控制电脑
Feb 22 Python
python2和python3的输入和输出区别介绍
Nov 20 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
Mar 01 Python
python 回溯法模板详解
Feb 26 Python
解决django 向mysql中写入中文字符出错的问题
May 18 Python
Python命令行参数argv和argparse该如何使用
Feb 08 Python
在python中读取和写入CSV文件详情
Jun 28 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
thinkphp 一个页面使用2次分页的实现方法
2013/07/15 PHP
php jq jquery getJSON跨域提交数据完整版
2013/09/13 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
2014/07/28 PHP
php中的字符编码转换函数用法示例
2014/10/20 PHP
YII动态模型(动态表名)支持分析
2016/03/29 PHP
PHP大文件分割分片上传实现代码
2020/12/09 PHP
javascript操作文本框readOnly
2007/05/15 Javascript
Extjs4.0设置Ext.data.Store传参的请求方式(默认为GET)
2013/04/02 Javascript
jquery+php随机生成红包金额数量代码分享
2015/08/27 Javascript
跟我学习javascript的for循环和for...in循环
2015/11/18 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
漂亮! js实现颜色渐变效果
2016/08/12 Javascript
Vue组件tree实现树形菜单
2017/04/13 Javascript
判断滚动条滑到底部触发事件(实例讲解)
2017/11/15 Javascript
React Native中NavigatorIOS组件的简单使用详解
2018/01/27 Javascript
vue中设置、获取、删除cookie的方法
2018/09/21 Javascript
基于vue.js实现购物车
2020/01/15 Javascript
[06:25]DOTA2英雄梦之声_第17期_大地之灵
2014/06/20 DOTA
深入解析Python编程中super关键字的用法
2016/06/24 Python
Python求离散序列导数的示例
2019/07/10 Python
python输出决策树图形的例子
2019/08/09 Python
Django实现WebSSH操作物理机或虚拟机的方法
2019/11/06 Python
Python的in,is和id函数代码实例
2020/04/18 Python
python 使用递归的方式实现语义图片分割功能
2020/07/16 Python
HTML5实现直播间评论滚动效果的代码
2020/05/27 HTML / CSS
KARATOV珠宝在线商店:俄罗斯珠宝品牌
2019/03/13 全球购物
Hotels.com泰国:酒店预订网站
2019/11/20 全球购物
经济系大学生求职信
2013/10/01 职场文书
2014乡镇“三八”国际劳动妇女节活动总结
2014/03/01 职场文书
2014学习全国两会精神心得体会2000字
2014/03/11 职场文书
情人节寄语大全
2014/04/11 职场文书
大连星海广场导游词
2015/02/10 职场文书
计划生育工作总结2015
2015/04/03 职场文书
《风不能把阳光打败》读后感3篇
2020/01/06 职场文书
html5中sharedWorker实现多页面通信的示例代码
2021/05/07 Javascript
vue/cli 配置动态代理无需重启服务的方法
2022/05/20 Vue.js