浅谈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的Scrapy框架的教程
Jun 11 Python
python实现人脸识别经典算法(一) 特征脸法
Mar 13 Python
Python正则表达式匹配和提取IP地址
Jun 06 Python
让Python脚本暂停执行的几种方法(小结)
Jul 11 Python
python文件操作的简单方法总结
Nov 07 Python
使用pyqt5 tablewidget 单元格设置正则表达式
Dec 13 Python
python自动识别文本编码格式代码
Dec 26 Python
python3 字符串知识点学习笔记
Feb 08 Python
解决Pycharm 导入其他文件夹源码的2种方法
Feb 12 Python
Python Pivot table透视表使用方法解析
Sep 11 Python
Python3 用matplotlib绘制sigmoid函数的案例
Dec 11 Python
Python实现制作销售数据可视化看板详解
Nov 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
PHP设计模式之迭代器模式的深入解析
2013/06/13 PHP
php实现比较两个字符串日期大小的方法
2015/05/12 PHP
Laravel使用swoole实现websocket主动消息推送的方法介绍
2019/10/20 PHP
让低版本浏览器支持input的placeholder属性(js方法)
2013/04/03 Javascript
继续学习javascript闭包
2015/12/03 Javascript
学习Javascript面向对象编程之封装
2016/02/23 Javascript
jQuery实现的瀑布流加载效果示例
2016/09/13 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/10/05 Javascript
深入理解jQuery.data() 的实现方式
2016/11/30 Javascript
js通过指定下标或指定元素进行删除数组的实例
2017/01/12 Javascript
关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的使用详解
2017/05/12 Javascript
深入理解Vue 单向数据流的原理
2017/11/09 Javascript
webpack构建的详细流程探底
2018/01/08 Javascript
vue如何引入sass全局变量
2018/06/28 Javascript
快速解决vue在ios端下点击响应延时的问题
2018/08/27 Javascript
JS正则表达式验证密码强度
2020/03/18 Javascript
vant实现购物车功能
2020/06/29 Javascript
Javascript实现打鼓效果
2021/01/29 Javascript
[02:47]DOTA2亚洲邀请赛 HR战队出场宣传片
2015/02/07 DOTA
Python中的zip函数使用示例
2015/01/29 Python
Python命令行参数解析模块getopt使用实例
2015/04/13 Python
详解python使用Nginx和uWSGI来运行Python应用
2018/01/09 Python
Python建立Map写Excel表实例解析
2018/01/17 Python
解决Python pandas df 写入excel 出现的问题
2018/07/04 Python
Python爬虫之正则表达式的使用教程详解
2018/10/25 Python
PyQt+socket实现远程操作服务器的方法示例
2019/08/22 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
Python基础之字符串常见操作经典实例详解
2020/02/26 Python
python能做哪些生活有趣的事情
2020/09/09 Python
运行时异常与一般异常有何异同?
2014/01/05 面试题
合伙经营协议书范本
2014/04/18 职场文书
暖通工程师岗位职责
2014/06/12 职场文书
企业仓管员岗位职责
2014/06/15 职场文书
党员证明模板
2015/06/19 职场文书
Nginx反向代理多个服务器的实现方法
2021/03/31 Servers
SpringBoot SpringEL表达式的使用
2021/07/25 Java/Android