python之计数统计
前言:
计数统计,简单的说就是统计某一项出现的次数。实际应用中很多需求都需要用到这个模型,如检测样本中某一值出现的次数、日志分析某一消息出现的频率、分析文件中相同字符串出现的概率等等。以下是实现的不同方式。
实现方式:
- 使用dict
>>> data = ['a','',2,4,5,'','b',4,7,'a',5,'d','a','z']
>>> count_1 = dict()
>>> for item in data:
... if item in count_1:
... count_1[item] +=1
... else:
... count_1[item] = 1
...
>>> print count_1
{'a': 3, 2: 1, 'b': 1, 4: 2, 5: 2, 7: 1, '': 2, 'z': 1, 'd': 1}
- 使用set和list
>>> data
['a', '', 2, 4, 5, '', 'b', 4, 7, 'a', 5, 'd', 'a', 'z']
>>> count_set = set(data)
>>> count_list = []
>>> for item in count_set:
... count_list.append({item:data.count(item)})
...
>>> print count_list
[{'a': 3}, {2: 1}, {'b': 1}, {4: 2}, {5: 2}, {7: 1}, {'': 2}, {'z': 1}, {'d': 1}]
- 使用collections.Counter
>>> data
['a', '', 2, 4, 5, '', 'b', 4, 7, 'a', 5, 'd', 'a', 'z']
>>> from collections import Counter
>>> print Counter(data)
Counter({'a': 3, 4: 2, 5: 2, '': 2, 2: 1, 'b': 1, 7: 1, 'z': 1, 'd': 1})
>>>
>>> list(Counter(data).elements()) #使用elements()方法获取Counter中的key值
['a', 'a', 'a', 2, 'b', 4, 4, 5, 5, 7, '', '', 'z', 'd']
>>>
>>> Counter(data).most_common(2) #使用most_common()方法可以找出前N个出现频率最高的元素以及它们对应的次数
[('a', 3), (4, 2)]
>>>
>>> (Counter(data))['y'] #当访问不存在的元素时,默认返回为0而不是抛出KeyError异常
0
Counter其他方法:
>>> c=Counter("success")
>>> print c
Counter({'s': 3, 'c': 2, 'e': 1, 'u': 1})
>>>
>>> c.update("successful") #update()方法用于被统计对象元素的更新,原有Counter计数器对象与新增元素的统计计数值相加
>>> print c
Counter({'s': 6, 'c': 4, 'u': 3, 'e': 2, 'f': 1, 'l': 1})
>>>
>>> c.subtract("successful") #subtract()方法用于实现计数器对象中元素统计值相减,输入和输出的统计值允许为0或者负数
>>> print c
Counter({'s': 3, 'c': 2, 'e': 1, 'u': 1, 'f': 0, 'l': 0})
python之计数统计的更多相关文章
- python的计数引用分析(一)
python的垃圾回收采用的是引用计数机制为主和分代回收机制为辅的结合机制,当对象的引用计数变为0时,对象将被销毁,除了解释器默认创建的对象外.(默认对象的引用计数永远不会变成0) 所有的计数引用+1 ...
- Python获得百度统计API的数据并发送邮件
Python获得百度统计API的数据并发送邮件 小工具 本来这么晚是不准备写博客的,当是想到了那个狗子绝对会在开学的时候跟我逼逼这个事情,所以,还是老老实实地写一下吧. Baidu统计API的使 ...
- python编写文件统计脚本
python编写文件统计脚本 思路:用os模块中的一些函数(os.listdir().os.path.isdir().os.path.join().os.path.abspath()等) 实现功能:显 ...
- Python实现代码统计工具——终极加速篇
Python实现代码统计工具--终极加速篇 声明 本文对于先前系列文章中实现的C/Python代码统计工具(CPLineCounter),通过C扩展接口重写核心算法加以优化,并与网上常见的统计工具做对 ...
- 使用python脚本实现统计日志文件中的ip访问次数
使用python脚本实现统计日志文件中的ip访问次数,注意此脚本只适用ip在每行开头的日志文件,需要的朋友可以参考下 适用的日志格式: 106.45.185.214 - - [06/Aug/2014: ...
- Python 练习题:统计系统剩余内存
#!/usr/bin/env python #-*- coding:utf-8 -*- ''' 统计系统内存信息 ''' with open('/proc/meminfo') as fd: for l ...
- python中如何统计一个类的实例化对象
类中的静态变量 需要通过类名.静态变量名 来修改 :通过对象不能修改 python中如何统计一个类的实例化对象?? class Person: #静态变量count,用于记录类被实例化的次数 coun ...
- 使用Counter进行计数统计
使用Counter进行计数统计 想必大家对计数统计都不陌生吧!,简单的说就是统计某一项出现的次数.实际应用中很多需求都需要用到这个模型,如检测样本中某一值出现的次数.日志分析某一消息出现的频率分析文件 ...
- python字典作为统计记录工具
1.python 利用字典作为计数项,统计指定项的个数 #!/usr/bin/python ta={} key = "test" if not key in ta: ta[ ...
随机推荐
- JavaScript高级程序设计重点(一)
1.一个完整的 JavaScript 实现应该由下列三 个不同的部分组成 核心(ECMAScript) 文档对象模型(DOM) 浏览器对象模型(BOM) 2.Undefined 类型只有一 ...
- 北京交大yum
[base] name=CentOS-$releasever - Base #mirrorlist=http://mirrorlist.centos.org/?release=$releasever& ...
- DotProject首页、文档和下载 - 项目管理工具 - 开源中国社区
DotProject首页.文档和下载 - 项目管理工具 - 开源中国社区
- BZOJ 1091([SCOI2003]分割多边形-分割直线)
1091: [SCOI2003]分割多边形 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 223 Solved: 82 [Submit][id=10 ...
- LoadRunner 比较字符串是否相等
int strcmp ( const char *string1, const char *string2 );大小写敏感.int stricmp ( const char *string1, con ...
- int&boolean——Java和C的一点小差别
Java和C的差别非常多.只是预计这一点非常多人都不知道. 今天面试时碰到这么道C语言题 求执行结果 int x = -1; while(!x!=0){ cout<<x<<en ...
- boost的内存管理
smart_ptr raii ( Resource Acquisition Is Initialization ) 智能指针系列的都统称为smart_ptr.包含c++98标准的auto_ptr 智能 ...
- Redis和Memcache性能测试对比
Redis和Memcache在写入性能上面差别不大,读取性能上面尤其是批量读取性能上面Memcache全面胜出,当然Redis也有自己的优点:比如数据持久化.支持更多的数据结构(Set List ZS ...
- IDEA--java版本修改(jdk1.8改成jdk1.7)
转载:https://blog.csdn.net/huyishero/article/details/61916516
- 【小技能】如何检索苹果APP
有时候要临时在PC上查询一下苹果APP的信息,但是又没有安装itunes软件,那么你可以在必应里面使用类似如下的语句,例如来搜索“aboboo site:itunes.apple.com”,就可以搜索 ...