python counter函数详解

  • Post category:Python

一、Python Counter函数简介

在Python中,Counter是一个用来计数的工具类。它是一个字典的子类,其中键表示要计数的对象,而键的值表示出现的次数。Counter类提供了快速计数的方法,支持大部分字典操作,同时它也支持数学运算操作。

二、 Python Counter函数详解

  1. Counter函数的基本用法

在使用Counter函数之前,需要先导入该模块:

from collections import Counter

然后,可以通过以下代码创建一个Counter对象:

arr = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
c = Counter(arr)

上述代码创建了一个计数器对象[Counter({4: 4, 3: 3, 2: 2, 1: 1})]。其中,键为数组元素,值为该元素在数组中出现的次数。

除了数组之外,Counter函数也可以接收一个字符串、元组、字典等类型的对象作为参数,用于统计对象中每个元素出现的次数。

  1. Counter函数常用方法

除了常规字典操作外,Counter还有以下常用方法:

(1) elements()方法:返回Counter对象元素的迭代器,如果元素出现次数大于1,将其重复返回。

如下所示例子,假设我们要统计字符串”hello world”中每个字符出现的次数:

s = "hello world"
c = Counter(s)

print(list(c.elements()))

输出为:[‘h’, ‘e’, ‘l’, ‘l’, ‘o’, ‘o’, ‘w’, ‘r’, ‘l’, ‘d’]

(2) most_common()方法:返回出现次数最多的元素和它的计数。

如下所示例子,假设我们要统计列表[1,1,1,2,2,3,4]中出现次数最多的两个元素:

arr = [1,1,1,2,2,3,4]
c = Counter(arr)

print(c.most_common(2))

输出为:[(1, 3), (2, 2)]。

(3) subtract()方法:从第一个Counter对象中减去第二个Counter对象中的元素。

如下所示例子,假设我们要从两个Counter对象中减去相同的元素:

c1 = Counter(a=3, b=1, c=2)
c2 = Counter(a=1, b=2, c=3)

c1.subtract(c2)
print(c1)

输出为:Counter({‘a’: 2, ‘c’: -1, ‘b’: -1})

三、Python Counter函数示例

  1. 统计字符串中字符出现的次数:
s = "hello world"
c = Counter(s)
print(c)

输出为: Counter({‘l’: 3, ‘o’: 2, ‘h’: 1, ‘e’: 1, ‘ ‘: 1, ‘w’: 1, ‘r’: 1, ‘d’: 1})

  1. 合并多个计数器:
c1 = Counter(a=3, b=1, c=2)
c2 = Counter(a=1, b=2, c=3)

c = c1 + c2
print(c)

输出为: Counter({‘a’: 4, ‘c’: 5, ‘b’: 3})

以上就是关于Python Counter函数详解的完整攻略。