python实践干货分享:使用Counter进行计数统计,方法有哪些?

时间:2024-05-19 14:32:24

python实践干货分享:使用Counter进行计数统计,方法有哪些?

python中计数统计,项目开发中我们经常用到,其实作用就是对某个事件发生的次数,进行统计。

很多应用场景都会用到这个函数例如:

抽查样本中出现残次品的次数;错误日志中出现某个错误提示次数;一篇文章中出现多次重复的单词或者语句;这类场景的有很多种实现方法。接下来给大家展示几种不同实现方式。

1.使用 dict

python实践干货分享:使用Counter进行计数统计,方法有哪些?

 

2.使用 defaultdict

python实践干货分享:使用Counter进行计数统计,方法有哪些?

 

3.使用 set 和 list

python实践干货分享:使用Counter进行计数统计,方法有哪些?

 

上面的方法都是基础的,还有没有更好用的方案呢?那么再给大家介绍一个类collections.Counter。

python实践干货分享:使用Counter进行计数统计,方法有哪些?

collections.Counter类

Counter类属于字典类的子类,是一个容器对象,它的作用主要用来统计散列对象,支持集合操作(+、-、&、I,其中&和|)等操作,会分别返回两个Counter对象各元素的最小值和最大值。

 

它提供了3种不同的方式来初始化:

(1)Counter ("success") # 可迭代对象Counter (s=3,c=2,e=l,u=l) # 关键字参数Counter ({"s":3,"c":2,"u":1,"e":1}) # 字典我们可以使用elements()方法来获取Counter中的key值。

>>> list (Counter(some data).elements ())

['a','a','a',2,'b',4,4,5,5,7,'2','2','z','d']

(2)使用most_common()方法可以找出出现次数最多的元素以及它们对应的次数。

>>> Counter(some_data).most_conunon(2)

[('a', 3), (4, 2)]

(3)当访问不存在的元素时,默认返回的值为0,而不是抛出KeyError异常。

>>> (Counter(some_data))['y']

update() 方法向字典插入指定的项目。(相加)

update() 方法向字典删除指定的项目。(相减)

这个指定项目可以是字典或可迭代对象。

在以下的例子里面,

update()方法用于被统计对象元素的更新,原有Counter计数器对象与新増元素的统计。计数值相加而不是直接替换它们。subtract()方法用于实现计数器对象中元素统计值相减,输入和输出的统计值允许为0或者负数。

python实践干货分享:使用Counter进行计数统计,方法有哪些?