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[ ...
随机推荐
- java比较两个日期大小
方法一 /** * 比较两个日期之间的大小 * * @param d1 * @param d2 * @return 前者大于后者返回true 反之false */ public boolean com ...
- Go和HTTPS(TLS)
原文链接: http://studygolang.com/wr?u=http%3a%2f%2ftonybai.com%2f2015%2f04%2f30%2fgo-and-https%2f 近期在构思一 ...
- 2016.3.15__H5页面实战__第七天
假设您认为这篇文章还不错,能够去H5专题介绍中查看很多其它相关文章. 个人简书地址: dhttp://www.jianshu.com/users/5a2fd0b8fb30/latest_article ...
- idea、jdk、eclispe中空main方法的线程数量不一样,why?
測试代码: public class Test { public static void main(String[] args) { System.out.println(Th ...
- 【algorithm】尾递归
尾递归和一般的递归不同在对内存的占用,普通递归创建stack累积而后计算收缩,尾递归只会占用恒量的内存(和迭代一样).SICP中描述了一个内存占用曲线,用以上答案中的Python代码为例(普通递归): ...
- [MAT]使用MAT比較多个heap dump文件
使用MAT比較多个heap dump文件 调试内存泄露时,有时候适时比較2个或多个heap dump文件是非常实用的.这时须要生成多个单独的HPROF文件. 以下是一些关于怎样在MAT里比較多个hea ...
- 一张图理清js原型链(通过内置对象的引用关系)
很多同学估计写了几年js也没有搞清内置对象之间的原型链关系,鄙人抽空手绘了一张简图,以作参考: 简单说明一下,上图中annonymous()函数相当于是所有函数的根(它本身也是函数),他上面提供了一些 ...
- Entity Framework工具POCO Code First Generator的使用(参考链接:https://github.com/sjh37/EntityFramework-Reverse-POCO-Code-First-Generator)
在使用Entity Framework过程中,有时需要借助工具生成Code First的代码,而Entity Framework Reverse POCO Code First Generator是一 ...
- JDK安装以及配置环境变量的步骤
---恢复内容开始--- 一.JDK安装 JDK下载链接:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads ...
- publish and submit
http://blog.csdn.net/w_jewelry/article/details/8123639 1.Gerrit里点击“publish and submit”提示如下:Your chan ...