Python里最好用的counter计数器,不接受反驳!
collections是python的标准库,它提供了一些解决特定问题的容器,也就是说有些问题虽然可以用list,tuple,dict解决,但解决起来太麻烦,而这些问题又经常遇到,所以他们就把这些问题的通用方法整理了出来,放到collections库中让人使用。
collections中一共有9种容器,其中counter、defaultdict、deque、namedtuple、orderdict比较常用。
今天我们单独来讲讲Counter的用法!
Counter目的是用来跟踪值出现的次数。它是一个无序的容器类型,以字典的键值对形式存储,其中元素作为key,其计数作为value。因此,我们可以通过字典的取数方式,进行取数。
在使用之前,我们需要先导入这个库,导入方法如下:
from collections import Counter
使用Counter类,我们需要先实例化一个Counter类,我们先实例化一个空的Counter类。
c1 = Counter()
c1
结果如下:
我们可以往括号中传入参数,来帮助我们实现不同情况下的 "值计数"。
Counter类的创建
我们可以往Counter类中,分别传入字符串、列表、元组、字典等,创建一个Counter类。
1. 传入一个字符串
c2 = Counter("hello huang")
c2
结果如下:
2. 传入一个列表
lis = [i for i in "chinese"]
c3 = Counter(lis)
c3
结果如下:
3. 传入一个字典
import random
dic = {k: random.randint(1,4) for k in "abcdefg"}
c4 = Counter(dic)
c4
结果如下:
4. 关键字参数
c5 = Counter(a=7,b=8)
c5
结果如下:
Counter类中计数元素值的访问
和访问字典类似,但是和字典唯一不同的是,如果所访问的键不存在时,返回0,而不是KeyError。
c = Counter("hello huang")
c["h"]
结果如下:
Counter类中计数元素的修改
关于Counter类中的计数元素,既可以做加减法、还可以做集合运算、也可以删除。
1. 加减法
① 加法
我们既可以使用update函数,完成这个操作。还可以使用+号,完成这个操作。
② 减法
我们既可以使用subtract函数,完成这个操作。但是-号用法就不同了,它应该属于集合运算,只统计在集合a中,而不在集合b中的值。
2. 集合运算
上面的-号就是一个集合运算,我在为大家介绍一下与&、|或操作。
① 与&
&操作,是找两个collection中都有的键最小的键值。
c1 = Counter("chinese")
c2 = Counter("where")c1 & c2
结果如下:
② |或
|操作,是找两个collection中的键最大的键值(可以只有一个collection有这个键,但是结果中的键值必须大于零,小于零的被舍弃)。
c1 = Counter("chinese")
c2 = Counter("where")c1 | c2
结果如下:
3. 删除操作
删除元素使用的是del函数。
c = Counter("where")del c["r"]
c
结果如下:
Counter类中其它常用函数
1. most_common(n)找出重复次数最多的前n个。
c = Counter("aabbbcccddddeeeee")
c.most_common(2)
结果如下:
2. key和value用于获取Collections键和键值的集合。
c = Counter("chinese")
c.keys()
c.values()
结果如下:
当然,我们也可以使用dict()函数将collection中的内容转化为字典,我们也可以使用list()函数将collection中的键转化为list,这里不在讲述,大家自行下去学习。
推荐阅读:
入门: 最全的零基础学Python的问题 | 零基础学了8个月的Python | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 | 从万众期待到口碑扑街!唐探3令人失望 | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏 | 九宫格 | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!| 再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|
年度爆款文案
1).卧槽!Pdf转Word用Python轻松搞定!
2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃
3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密
4).80行代码!用Python做一个哆来A梦分身
5).你必须掌握的20个python代码,短小精悍,用处无穷
6).30个Python奇淫技巧集
7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货
8).再见Python!我要学Go了!2500字深度分析!
9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片
点阅读原文,看200个Python案例!
Python里最好用的counter计数器,不接受反驳!相关推荐
- 下列哪个不是目前python里的内置模块-python中那些小众但有用的内置模块
今天带来的是python里一些小众但是却比较实用的python库,一起来看看吧! pprint:更清晰的打印 pprint 是 pretty printer 的缩写,用来打印 Python 数据结构, ...
- python里unexpected eof while parsing_使用Python编程时的10个注意事项
01初始变化量 在Python里,一个表达式中的名字在它被赋值之前是没法使用的.这是有意而为的:这样能避免一些输入失误,同时也能避免默认究竟应该是什么类型的问题(0,None,"" ...
- 为什么在Python里推荐使用多进程而不是多线程?(为什么python多线程无法增加CPU使用率?)...
最近在看Python的多线程,经常我们会听到老手说:"Python下多线程是鸡肋,推荐使用多进程!",但是为什么这么说呢? 要知其然,更要知其所以然.所以有了下面的深入研究: 首先 ...
- Python中Collections模块的Counter容器类使用教程
Python中Collections模块的Counter容器类使用教程 1.collections模块 collections模块自Python2.4版本开始被引入,包含了dict,set,list, ...
- python里的collections模块
python里的collections模块 collections模块里提供了一些特殊功能的容器: namedtuple deque ChainMap Counter OrderedDict defa ...
- python里输入3.14*2会出现数据报错_Python程序员的30个常见错误
导读:在这篇文章中,我将总结新老Python程序员常犯的一些错误,以帮助你们在自己的工作避免犯同样或类似错误. 作者:Mark Lutz 译者:伯乐在线 - 果果夫斯基 来源:http://blog. ...
- 一篇长文带你在python里玩转Json数据
Json简介 Json(JavaScript Object Notation) 很多网站都会用到Json格式来进行数据的传输和交换. 这因为Json是一种轻量级的数据交换格式,具有数据格式简单,读写方 ...
- python中的format什么意思中文-python里format什么意思
format是python2.6新增的一个格式化字符串的方法,相对于老版的%格式方法,它有很多优点. 1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型(推荐学习:Python视频教程) ...
- python能绘制统计图吗-特征锦囊:常用的统计图在Python里怎么画?
今日锦囊 常用的统计图在Python里怎么画? 这里的话我们介绍几种很简单但也很实用的统计图绘制方法,分别有条形图.饼图.箱体图.直方图以及散点图,关于这几种图形的含义这边就不多做解释了. 今天用到两 ...
最新文章
- 更改sybase下设备名
- Octavia 创建 loadbalancer 的实现与分析
- 树状数组(Binary Indexed Tree) 总结
- 局域网抓包分析工具_[源码和文档分享]基于Libpcap实现的局域网嗅探抓包发包解析工具...
- 遍历 HashMap 的 5 种最佳方式,我不信你全知道!
- [BUAA-SE-2018]结对作业测试报告
- oracle 意外事件,Oracle数据库REDO损坏ora-00333修复手札
- 本地数据库与mysql同步软件下载_SyncNavigator数据库同步软件
- iText中输出 中文
- Dell™ PowerEdge™ R710机架式服务器旨在成为虚拟化企业的构建块
- 项目部署:IIS部署后运行报错iconfont.woff:1 Failed to load resource: the server responded with a status of 404
- python 整除的数组_LeetCode 974. 和可被 K 整除的子数组 | Python
- 摩尔定律和梅特卡夫定律_摩尔定律f
- (Web前端)十分优秀的后台管理框架收集
- 简述对CAN协议栈的理解
- [RK3288][Android6.0] 调试笔记 --- Audio的Voice Call无法静音问题
- 语音识别(ASR)论文优选:Icassp 2022 M2MeT方案总结
- 猜想2010年IT十大表情
- Candence PCB Si 仿真设计篇前导:IBIS模型与PKG介绍
- 一触即达!佰达慧兴携新风向标开展新零售电商产业升级
热门文章
- 搭建各类游戏如何选择合适的服务器
- 计算机在智能建筑中的应用,【计算机技术在建筑智能化中的应用研究原稿_0材料】...
- windows和linux的icmp包,linux和windows下icmp的区别
- 拜登留学新政:美国读博直接拿绿卡,增加H1B签证限额!但未来留美门槛反而变高了?...
- 印刷行业中过UV是什么意思?
- 克罗内克积Kronecker
- [ARCGIS]带黑边的IMG格式影像如何消除黑边?
- 华为p50不会用鸿蒙系统,华为p50会不会预装鸿蒙系统_华为p50会预装鸿蒙系统吗...
- G1D38-Evaluation Metrics
- [XJTUSE]计算机图形学第二章作业,使用OpenGL编程实现DDA、中点画线和Bresenham算法和中点画圆法