浅谈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 相关文章推荐
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
May 17 Python
在python中利用GDAL对tif文件进行读写的方法
Nov 29 Python
Pycharm之快速定位到某行快捷键的方法
Jan 20 Python
Python可迭代对象操作示例
May 07 Python
python pandas生成时间列表
Jun 29 Python
Python assert语句的简单使用示例
Jul 28 Python
python实现的config文件读写功能示例
Sep 24 Python
详解django使用include无法跳转的解决方法
Mar 19 Python
Python利用for循环打印星号三角形的案例
Apr 12 Python
Django的ListView超详细用法(含分页paginate)
May 21 Python
只用40行Python代码就能写出pdf转word小工具
May 31 Python
Python将CSV文件转化为HTML文件的操作方法
Jun 30 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
ThinkPHP实现非标准名称数据表快速创建模型的方法
2014/11/29 PHP
jQuery提交表单ajax查询实例代码
2012/10/07 Javascript
JavaScript匿名函数与委托使用示例
2014/07/22 Javascript
JS实现跟随鼠标的链接文字提示框效果
2015/08/06 Javascript
jQuery左侧大图右侧小图焦点图幻灯切换代码分享
2015/08/19 Javascript
基于MVC4+EasyUI的Web开发框架形成之旅之界面控件的使用
2015/12/16 Javascript
全面解析Bootstrap中tab(选项卡)的使用方法
2016/06/06 Javascript
关于List.ToArray()方法的效率测试
2016/09/30 Javascript
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
原生JS实现圆环拖拽效果
2017/04/07 Javascript
基于nodejs实现微信支付功能
2017/12/20 NodeJs
vue中各选项及钩子函数执行顺序详解
2018/08/25 Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
2018/09/13 Javascript
vue 实现移动端键盘搜索事件监听
2019/11/06 Javascript
js 获取扫码枪输入数据的方法
2020/06/10 Javascript
[40:13]Ti4 冒泡赛第二天 iG vs NEWBEE 2
2014/07/15 DOTA
python杀死一个线程的方法
2015/09/06 Python
python集合比较(交集,并集,差集)方法详解
2018/09/13 Python
对Python3 解析html的几种操作方式小结
2019/02/16 Python
如何解决django-celery启动后迅速关闭
2019/10/16 Python
python实现批处理文件
2020/07/28 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
2020/08/03 Python
美丽的现代设计家具:2Modern
2018/07/26 全球购物
李维斯法国官网:Levi’s法国
2019/07/13 全球购物
美国折扣香水网站:The Perfume Spot
2020/12/12 全球购物
意大利在线药房:Saninforma
2021/02/11 全球购物
ORACLE十问
2015/04/20 面试题
介绍一下XMLHttpRequest对象的常用方法和属性
2013/05/24 面试题
个人简历自我评价
2014/02/02 职场文书
大学生社会实践评语
2014/04/25 职场文书
负责人任命书范本
2014/06/04 职场文书
求职意向书
2014/07/29 职场文书
2014年护理部工作总结
2014/11/14 职场文书
优秀班组申报材料
2014/12/25 职场文书
安全生产警示教育活动总结
2015/05/09 职场文书
适合青年人白手起家的创业项目分享
2019/08/16 职场文书