浅谈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 相关文章推荐
linux系统使用python获取内存使用信息脚本分享
Jan 15 Python
Python学习笔记(一)(基础入门之环境搭建)
Jun 05 Python
python生成器generator用法实例分析
Jun 04 Python
django解决跨域请求的问题
Nov 11 Python
python3.x实现base64加密和解密
Mar 28 Python
python+opencv实现摄像头调用的方法
Jun 22 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
Jun 25 Python
Python变量访问权限控制详解
Jun 29 Python
Django连接数据库并实现读写分离过程解析
Nov 13 Python
python ftplib模块使用代码实例
Dec 31 Python
tensorflow 环境变量设置方式
Feb 06 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
Mar 27 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
实用函数7
2007/11/08 PHP
PHP详解ASCII码对照表与字符转换
2011/12/05 PHP
再Docker中架设完整的WordPress站点全攻略
2015/07/29 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
多浏览器兼容的获取元素和鼠标的位置的js代码
2009/12/15 Javascript
javascript中的正则表达式使用详解
2015/08/30 Javascript
简单的分页代码js实现
2016/05/17 Javascript
你不需要jQuery(三) 新AJAX方法fetch()
2016/06/14 Javascript
js动态生成form 并用ajax方式提交的实现方法
2016/09/09 Javascript
JavaScript实现使用Canvas绘制图形的基本教程
2016/10/27 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
Node中使用ES6语法的基础教程
2018/01/05 Javascript
使用 vue.js 构建大型单页应用
2018/02/10 Javascript
基于vue.js组件实现分页效果
2018/12/29 Javascript
Angular2实现的秒表及改良版示例
2019/05/10 Javascript
vue+iview实现分页及查询功能
2020/11/17 Vue.js
深入理解javascript中的this
2021/02/08 Javascript
[44:40]2018DOTA2亚洲邀请赛3月30日 小组赛A组Liquid VS OG
2018/03/31 DOTA
Python实现各种排序算法的代码示例总结
2015/12/11 Python
python字符串str和字节数组相互转化方法
2017/03/18 Python
python基本语法练习实例
2017/09/19 Python
Numpy数组转置的两种实现方法
2018/04/17 Python
python数值基础知识浅析
2019/11/19 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
2020/08/05 Python
python 递归相关知识总结
2021/03/03 Python
印度婴儿用品在线商店:Firstcry.com
2016/12/05 全球购物
Hoka One One法国官网:美国专业跑鞋品牌
2018/12/29 全球购物
关于礼仪的演讲稿
2014/01/04 职场文书
施工协议书范本
2014/04/22 职场文书
湖南省召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
环卫工作个人总结
2015/03/04 职场文书
汽车销售员工作总结
2015/08/12 职场文书
Python获取指定日期是"星期几"的6种方法
2022/03/13 Python
Nginx配置之禁止指定IP访问
2022/05/02 Servers
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android