浅谈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 time模块用法实例详解
Sep 11 Python
Python判断变量是否为Json格式的字符串示例
May 03 Python
基于hashlib模块--加密(详解)
Jun 21 Python
Python爬虫框架Scrapy实例代码
Mar 04 Python
使用python将大量数据导出到Excel中的小技巧分享
Jun 14 Python
Python基于pandas实现json格式转换成dataframe的方法
Jun 22 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
Apr 17 Python
python 实现返回一个列表中出现次数最多的元素方法
Jun 11 Python
python实现数据分析与建模
Jul 11 Python
Python面向对象封装操作案例详解 II
Jan 02 Python
python线程池如何使用
May 28 Python
PyQt5中QSpinBox计数器的实现
Jan 18 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微信公众号js-sdk开发应用
2016/11/28 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
Javascript 遍历对象中的子对象
2009/07/03 Javascript
动态表格Table类的实现
2009/08/26 Javascript
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
2010/06/10 Javascript
JS短路原理的应用示例 精简代码的途径
2013/12/13 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
node.js中的buffer.toString方法使用说明
2014/12/14 Javascript
jQuery检测某个元素是否存在代码分享
2015/07/09 Javascript
Jquery easyui 实现动态树
2015/11/17 Javascript
基于jQuery实现简单的折叠菜单效果
2015/11/23 Javascript
再谈javascript常见错误及解决方法
2016/09/16 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
js实现做通讯录的索引滑动显示效果和滑动显示锚点效果
2017/02/18 Javascript
Bootstrap Table使用整理(三)
2017/06/09 Javascript
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
详解一个小实例理解js原型和继承
2019/04/24 Javascript
Antd下拉选择,自动匹配功能的实现
2020/10/24 Javascript
pymongo为mongodb数据库添加索引的方法
2015/05/11 Python
Python实现多进程的四种方式
2019/02/22 Python
利用Python半自动化生成Nessus报告的方法
2019/03/19 Python
pip安装python库的方法总结
2019/08/02 Python
python实现的发邮件功能示例
2019/09/11 Python
如何解决tensorflow恢复模型的特定值时出错
2020/02/06 Python
python字典按照value排序方法
2020/12/28 Python
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
世界知名接发和假发品牌:Poze Hair
2017/03/08 全球购物
Skip Hop官网:好莱坞宝宝挚爱品牌
2018/06/17 全球购物
计算机专业毕业生自荐信
2013/12/31 职场文书
采购类个人求职的自我评价
2014/02/18 职场文书
简历上的自我评价,该怎么写呢?
2019/06/13 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书
Pytorch中的数据集划分&正则化方法
2021/05/27 Python
Java生成读取条形码和二维码的简单示例
2021/07/09 Java/Android
深入理解go缓存库freecache的使用
2022/02/15 Golang
MySQL优化常用的19种有效方法(推荐!)
2022/03/17 MySQL