浅谈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 相关文章推荐
Python3利用SMTP协议发送E-mail电子邮件的方法
Sep 30 Python
如何在python中使用selenium的示例
Dec 26 Python
Python使用MD5加密算法对字符串进行加密操作示例
Mar 30 Python
对python中的pop函数和append函数详解
May 04 Python
Python实现查看系统启动项功能示例
May 10 Python
Python登录注册验证功能实现
Jun 18 Python
python 将字符串中的数字相加求和的实现
Jul 18 Python
python爬虫 爬取58同城上所有城市的租房信息详解
Jul 30 Python
Python抓包程序mitmproxy安装和使用过程图解
Mar 02 Python
Python库skimage绘制二值图像代码实例
Apr 10 Python
Tensorflow中k.gradients()和tf.stop_gradient()用法说明
Jun 10 Python
Python3合并两个有序数组代码实例
Aug 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中的字符串函数
2006/10/09 PHP
php foreach 使用&(与运算符)引用赋值要注意的问题
2010/02/16 PHP
PHP连接MongoDB示例代码
2012/09/06 PHP
Zend Framework实现具有基本功能的留言本(附demo源码下载)
2016/03/22 PHP
PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法
2016/07/01 PHP
php实现xml与json之间的相互转换功能实例
2016/07/07 PHP
phpStudy配置多站点多域名和多端口的方法
2017/09/01 PHP
PHP实现PDO操作mysql存储过程示例
2019/02/13 PHP
DOM 基本方法
2009/07/18 Javascript
css配合jquery美化 select
2013/11/29 Javascript
js随机生成字母数字组合的字符串 随机动画数字
2015/09/02 Javascript
jQuery简单实现两级下拉菜单效果代码
2015/09/15 Javascript
javascript中eval解析JSON字符串
2016/02/27 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
js与applet相互调用的方法
2016/06/22 Javascript
js, jQuery实现全选、反选功能
2017/03/08 Javascript
vue使用$emit时,父组件无法监听到子组件的事件实例
2018/02/26 Javascript
centos 上快速搭建ghost博客方法分享
2018/05/23 Javascript
Angular7创建项目、组件、服务以及服务的使用
2019/02/19 Javascript
详解vue使用$http服务端收不到参数
2019/04/19 Javascript
openlayers实现图标拖动获取坐标
2020/09/25 Javascript
[01:14:35]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第一局
2016/02/26 DOTA
[44:15]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第二局
2016/03/06 DOTA
Python生成数字图片代码分享
2017/10/31 Python
python机器学习包mlxtend的安装和配置详解
2019/08/21 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
2020/04/14 Python
使用python创建生成动态链接库dll的方法
2020/05/09 Python
解决在keras中使用model.save()函数保存模型失败的问题
2020/05/21 Python
基于python tkinter的点名小程序功能的实例代码
2020/08/22 Python
中国旅游网站:同程旅游
2016/09/11 全球购物
美国男装连锁零售商:Men’s Wearhouse
2016/10/14 全球购物
日本乐天官方海外转运服务:Rakuten Global Express
2018/11/30 全球购物
环境整治工作方案
2014/05/18 职场文书
深入开展党的群众路线教育实践活动心得体会
2014/11/05 职场文书
感恩主题班会教案
2015/08/12 职场文书
深度学习详解之初试机器学习
2021/04/14 Python