本文主要是介绍Python标准库:超好用的counter计数器,不接受反驳!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
人生苦短,快学Python!
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程序,并且想玩服务器编程的可以加入我们,我们一年会带大家玩7个项目,大家可以修改我们的代码来扩展它的功能,比如监控股票的可以改成监控基金的,或者是多个金融数据产品,然后根据一些均线策略来提醒你的交易策略等等。
目前星球的价格是一年88元(算下来一个月6块多),还有12元的优惠券限时领取。有兴趣的加入我们的,速来。
推荐阅读:
入门: 最全的零基础学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计数器,不接受反驳!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!