浅谈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 相关文章推荐
python实现电子词典
Apr 23 Python
python统计文本字符串里单词出现频率的方法
May 26 Python
Django添加KindEditor富文本编辑器的使用
Oct 24 Python
python 获取键盘输入,同时有超时的功能示例
Nov 13 Python
python安装numpy和pandas的方法步骤
May 27 Python
python实时检测键盘输入函数的示例
Jul 17 Python
Python matplotlib生成图片背景透明的示例代码
Aug 30 Python
Python virtualenv虚拟环境实现过程解析
Apr 18 Python
keras中epoch,batch,loss,val_loss用法说明
Jul 02 Python
python实现定时发送邮件到指定邮箱
Dec 23 Python
python 自动识别并连接串口的实现
Jan 19 Python
python opencv实现图像配准与比较
Feb 09 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
抓取并下载CSS中所有图片文件的php代码
2011/09/26 PHP
php获取301跳转URL简单实例
2013/12/16 PHP
smarty模板局部缓存方法使用示例
2014/06/17 PHP
实例详解PHP中html word 互转的方法
2016/01/28 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
2017/03/31 PHP
PHP 中使用explode()函数切割字符串为数组的示例
2017/05/06 PHP
jquery ready()的几种实现方法小结
2010/06/18 Javascript
解决jquery的datepicker的本地化以及Today问题
2012/05/23 Javascript
js代码实现的加入收藏效果并兼容主流浏览器
2014/06/23 Javascript
JavaScript判断数组是否存在key的简单实例
2016/08/03 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
详解vue静态资源打包中的坑与解决方案
2018/02/05 Javascript
nodejs中Express与Koa2对比分析
2018/02/06 NodeJs
微信小程序自定义组件实现环形进度条
2020/11/17 Javascript
JS根据Unix时间戳显示发布时间是多久前【项目实测】
2019/07/10 Javascript
详解钉钉小程序组件之自定义模态框(弹窗封装实现)
2020/03/07 Javascript
node+vue实现文件上传功能
2020/05/28 Javascript
在类Unix系统上开始Python3编程入门
2015/08/20 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
2016/04/09 Python
从零开始学Python第八周:详解网络编程基础(socket)
2016/12/14 Python
Python设计模式之适配器模式原理与用法详解
2019/01/15 Python
值得收藏的10道python 面试题
2019/04/15 Python
python实现视频读取和转化图片
2019/12/10 Python
使用python检查yaml配置文件是否符合要求
2020/04/09 Python
Python中zipfile压缩文件模块的基本使用教程
2020/06/14 Python
python PIL模块的基本使用
2020/09/29 Python
Linux上比较文件的命令都有哪些
2012/02/24 面试题
证婚人搞笑证婚词
2014/01/10 职场文书
幼儿园毕业寄语
2014/04/03 职场文书
基层党员四风问题自我剖析材料
2014/09/29 职场文书
毕业生班级鉴定评语
2015/01/04 职场文书
辞职信格式模板
2015/02/27 职场文书
降价通知函
2015/04/23 职场文书
教学副校长工作总结
2015/08/13 职场文书
如何使用SQL Server语句创建表
2022/04/12 SQL Server
Elasticsearch Recovery 详细介绍
2022/04/19 Java/Android