浅谈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操作mysql中文显示乱码的解决方法
Oct 11 Python
Python中使用第三方库xlutils来追加写入Excel文件示例
Apr 05 Python
Python使用matplotlib绘制动画的方法
May 20 Python
Using Django with GAE Python 后台抓取多个网站的页面全文
Feb 17 Python
Python实现的凯撒密码算法示例
Apr 12 Python
Python Pandas批量读取csv文件到dataframe的方法
Oct 08 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
Dec 05 Python
浅谈python函数调用返回两个或多个变量的方法
Jan 23 Python
对Pytorch中nn.ModuleList 和 nn.Sequential详解
Aug 18 Python
Django之使用celery和NGINX生成静态页面实现性能优化
Oct 08 Python
matplotlib 曲线图 和 折线图 plt.plot()实例
Apr 17 Python
python和C++共享内存传输图像的示例
Oct 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的ob_start() 控制您的浏览器cache
2009/08/03 PHP
php csv操作类代码
2009/12/14 PHP
PHP开发需要注意的安全问题
2010/09/01 PHP
PHP中exec函数和shell_exec函数的区别
2014/08/20 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
2015/12/19 PHP
PHP实现的函数重载功能示例
2018/08/03 PHP
jQuery与ExtJS之选择实例分析
2010/08/19 Javascript
jquery实现非叠加式的搜索框提示效果
2014/01/07 Javascript
超简单JS二级、多级联动的简单实例
2014/02/18 Javascript
easyui validatebox验证
2016/04/29 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
原生js实现类似fullpage的单页/全屏滚动
2017/01/22 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
2017/04/22 Javascript
基于 Bootstrap Datetimepicker 联动
2017/08/03 Javascript
JS跳转手机站url的若干注意事项
2017/10/18 Javascript
vue单页开发父子组件传值思路详解
2018/05/18 Javascript
JS封装的模仿qq右下角消息弹窗功能示例
2018/08/22 Javascript
用node撸一个监测复联4开售短信提醒的实现代码
2019/04/10 Javascript
解决layer.open弹出框不能获取input框的值为空的问题
2019/09/10 Javascript
webpack 动态批量加载文件的实现方法
2020/03/19 Javascript
[50:50]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第一场 12.10
2020/12/13 DOTA
用Python写的图片蜘蛛人代码
2012/08/27 Python
Python设置默认编码为utf8的方法
2016/07/01 Python
Python基于matplotlib绘制栈式直方图的方法示例
2017/08/09 Python
python将文本分每两行一组并保存到文件
2018/03/19 Python
Python PyCharm如何进行断点调试
2019/07/05 Python
Django对接支付宝实现支付宝充值金币功能示例
2019/12/17 Python
python 消费 kafka 数据教程
2019/12/21 Python
带有css3动画效果的兼容多浏览器简单导航条示例
2014/01/26 HTML / CSS
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
2019/01/17 HTML / CSS
百思买美国官网:Best Buy
2016/07/28 全球购物
伦敦一卡通:The London Pass
2018/11/30 全球购物
PHP如何对用户密码进行加密
2014/07/31 面试题
公司财务自我评价分享
2013/12/17 职场文书
孙振耀退休感言
2015/08/01 职场文书
小程序实现悬浮按钮的全过程记录
2021/10/16 HTML / CSS