浅谈python中统计计数的几种方法和Counter详解


Posted in Python onNovember 07, 2019

1) 使用字典dict()

循环遍历出一个可迭代对象中的元素,如果字典没有该元素,那么就让该元素作为字典的键,并将该键赋值为1,如果存在就将该元素对应的值加1.

lists = ['a','a','b',5,6,7,5]
  count_dict = dict()
  for item in lists:
   if item in count_dict:
    count_dict[item] += 1
   else:
    count_dict[item] = 1

2) 使用defaultdict()

defaultdict(parameter)可以接受一个类型参数,如str,int等,但传递进来的类型参数,不是用来约束值的类型,更不是约束键的类型,而是当键不存在的话,实现一种值的初始化

defaultdict(int):初始化为 0

defaultdict(float):初始化为 0.0

defaultdict(str):初始化为 ”

from collections import defaultdict
  lists = ['a', 'a', 'b', 5, 6, 7, 5]
  count_dict = defaultdict(int)
  for item in lists:
   count_dict[item] += 1

3) 使用集合(set)和列表(list)

先使用set去重,然后循环的把每一个元素和每一个元素对应的次数lists.count(item)组成一个元组放在列表里面

lists = ['a', 'a', 'b', 5, 6, 7, 5]
count_set = set(lists)
count_list = list()
for item in count_set:
 count_list.append((item,lists.count(item))

4) 使用Counter

Counter是一个容器对象,主要的作用是用来统计散列对象,可以使用三种方式来初始化

参数里面参数可迭代对象 Counter("success")

传入关键字参数Counter((s=3,c=2,e=1,u=1))

传入字典 Counter({"s":3,"c"=2,"e"=1,"u"=1})

Counter()对象还有几个可以调用的方法,代码里面分别进行了说明

from collections import Counter
lists = ['a', 'a', 'b', 5, 6, 7, 5]
a = Counter(lists)
print(a) # Counter({'a': 2, 5: 2, 'b': 1, 6: 1, 7: 1})
a.elements() # 获取a中所有的键,返回的是一个对象,我们可以通过list来转化它
a.most_common(2) # 前两个出现频率最高的元素已经他们的次数,返回的是列表里面嵌套元组
a['zz'] # 访问不存在的时候,默认返回0
a.update("aa5bzz") # 更新被统计的对象,即原有的计数值与新增的相加,而不是替换
a.subtrct("aaa5z") # 实现与原有的计数值相减,结果运行为0和负值

以上这篇浅谈python中统计计数的几种方法和Counter详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
50行代码实现贪吃蛇(具体思路及代码)
Apr 27 Python
如何高效使用Python字典的方法详解
Aug 31 Python
Python入门之三角函数sin()函数实例详解
Nov 08 Python
使用python编写简单的小程序编译成exe跑在win10上
Jan 15 Python
Pandas实现数据类型转换的一些小技巧汇总
May 07 Python
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
Dec 15 Python
浅谈python多进程共享变量Value的使用tips
Jul 16 Python
超简单的Python HTTP服务
Jul 22 Python
python实现图片插入文字
Nov 26 Python
python实现高斯投影正反算方式
Jan 17 Python
python如何通过twisted搭建socket服务
Feb 03 Python
OpenCV中resize函数插值算法的实现过程(五种)
Jun 05 Python
Python操作SQLite/MySQL/LMDB数据库的方法
Nov 07 #Python
Flask框架路由和视图用法实例分析
Nov 07 #Python
Python 切分数组实例解析
Nov 07 #Python
Django 简单实现分页与搜索功能的示例代码
Nov 07 #Python
Flask框架请求钩子与request请求对象用法实例分析
Nov 07 #Python
Django框架ORM数据库操作实例详解
Nov 07 #Python
Python程序暂停的正常处理方法
Nov 07 #Python
You might like
PHP setcookie() cannot modify header information 的解决方法
2009/01/09 PHP
使用php-timeit估计php函数的执行时间
2015/09/06 PHP
php实现scws中文分词搜索的方法
2015/12/25 PHP
Smarty简单生成表单元素的方法示例
2016/05/23 PHP
php将文件夹打包成zip文件的简单实现方法
2016/10/04 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
JSON.stringify 语法实例讲解
2012/03/14 Javascript
js获取当前页面的url网址信息
2014/06/12 Javascript
jQuery寻找n以内完全数的方法
2015/06/24 Javascript
基于Jquery实现焦点图淡出淡入效果
2015/11/30 Javascript
jQuery简单实现中间浮窗效果
2016/09/04 Javascript
整理关于Bootstrap导航的慕课笔记
2017/03/29 Javascript
Bootstrap Table从零开始
2017/06/30 Javascript
基于node.js express mvc轻量级框架实践
2017/09/14 Javascript
React中嵌套组件与被嵌套组件的通信过程
2018/07/11 Javascript
Layer弹出层动态获取数据的方法
2018/08/20 Javascript
js实现无缝滚动双图切换效果
2019/07/09 Javascript
vue学习笔记之作用域插槽实例分析
2020/02/01 Javascript
详解ES6 中的Object.assign()的用法实例代码
2021/01/11 Javascript
Python判断文件和文件夹是否存在的方法
2015/05/21 Python
Python脚本获取操作系统版本信息
2016/12/17 Python
pip指定python位置安装软件包的方法
2019/07/12 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
2019/08/12 Python
html5录音功能实战示例
2019/03/25 HTML / CSS
化学学院毕业生自荐信范文
2013/12/17 职场文书
新任教师自我鉴定
2014/02/24 职场文书
幼儿园大班开学教师寄语
2014/04/03 职场文书
学校教研活动总结
2014/07/02 职场文书
涉外离婚协议书怎么写
2014/11/20 职场文书
2015年高中班主任工作总结
2015/04/30 职场文书
企业年会祝酒词
2015/08/11 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书
2019新员工试用期转正申请书3篇
2019/08/13 职场文书
自定义函数实现单词排序并运用于PostgreSQL(实现代码)
2021/04/22 PostgreSQL
Python 绘制多因子柱状图
2022/05/11 Python