浅谈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 相关文章推荐
Django在Win7下的安装及创建项目hello word简明教程
Jul 14 Python
详解Python中open()函数指定文件打开方式的用法
Jun 04 Python
python实现list元素按关键字相加减的方法示例
Jun 09 Python
python实现图片筛选程序
Oct 24 Python
django 类视图的使用方法详解
Jul 24 Python
详解程序意外中断自动重启shell脚本(以Python为例)
Jul 26 Python
python RC4加密操作示例【测试可用】
Sep 26 Python
python二分法查找算法实现方法【递归与非递归】
Dec 06 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
Feb 15 Python
calendar在python3时间中常用函数举例详解
Nov 18 Python
Python下opencv使用hough变换检测直线与圆
Jun 18 Python
PyCharm 配置SSH和SFTP连接远程服务器
May 11 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中的CMS的涵义
2007/03/11 PHP
PHP获取windows登录用户名的方法
2014/06/24 PHP
基于JavaScript 下namespace 功能的简单分析
2013/07/05 Javascript
jquery实现带单选按钮的表格行选中时高亮显示
2013/08/01 Javascript
原生javaScript做得动态表格(注释写的很清楚)
2013/12/29 Javascript
JS实现一个按钮的方法
2015/02/05 Javascript
jQuery焦点控制图层展示延迟隐藏的方法
2015/03/09 Javascript
JavaScript中的toLocaleDateString()方法使用简介
2015/06/12 Javascript
深入理解Angularjs中的$resource服务
2016/12/31 Javascript
Bootstrap选项卡学习笔记分享
2017/02/13 Javascript
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
element-ui多文件上传的实现示例
2019/04/10 Javascript
微信小程序实现菜单左右联动
2020/05/19 Javascript
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
2020/07/22 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
antd的select下拉框因为数据量太大造成卡顿的解决方式
2020/10/31 Javascript
Vue 修改网站图标的方法
2020/12/31 Vue.js
Python3实现从指定路径查找文件的方法
2015/05/22 Python
python中pandas.DataFrame对行与列求和及添加新行与列示例
2017/03/12 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
pandas 数据索引与选取的实现方法
2019/06/21 Python
python操作cfg配置文件方式
2019/12/22 Python
Python线程条件变量Condition原理解析
2020/01/20 Python
Python字符编码转码之GBK,UTF8互转
2020/02/09 Python
LightInTheBox法国站:中国跨境电商
2020/03/05 全球购物
美国鲜花递送:UrbanStems
2021/01/04 全球购物
铭立家具面试题
2012/12/06 面试题
招商专员岗位职责
2014/02/08 职场文书
护士上岗前培训自我鉴定
2014/04/20 职场文书
大学生演讲稿
2014/04/25 职场文书
反邪教宣传工作方案
2014/05/07 职场文书
资助贫困学生倡议书
2014/05/16 职场文书
班级标语大全
2014/06/21 职场文书
小学大队委竞选口号
2015/12/25 职场文书
执行力心得体会范文
2016/01/11 职场文书
MySQL系列之六 用户与授权
2021/07/02 MySQL