Python中collections.Counter()的具体使用

  • Post category:Python

下面是“Python中collections.Counter()的具体使用”的完整攻略。

1. 简介

collections库是Python标准库中的一个重要模块,它提供了一些特殊的数据类型,如deque双端队列、defaultdict默认字典、OrderedDict有序字典等。其中,collections.Counter()是一种字典的子类,用于计数可哈希对象出现的次数。

2. Counter()的基本使用

使用Counter()可以很方便地对一个列表、元组、字符串等可迭代对象中的元素出现的次数进行计数,并返回一个字典。示例代码如下:

from collections import Counter

lst = [1, 2, 3, 1, 2, 3, 4, 5, 6, 2, 3]
cnt = Counter(lst)
print(cnt)

输出结果如下:

Counter({2: 3, 3: 3, 1: 2, 4: 1, 5: 1, 6: 1})

其中,字典中的键为列表中的元素,值为该元素在列表中出现的次数。

除了列表以外,Counter()还支持对字符串和元组等可迭代对象进行计数。示例代码如下:

from collections import Counter

s = 'hello, world!'
cnt = Counter(s)
print(cnt)

输出结果如下:

Counter({'l': 3, 'o': 2, 'e': 1, 'h': 1, ',': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1, '!': 1})

3. Counter()的高级用法

3.1 计数指定元素

除了计数整个列表或字符串中出现的所有元素,Counter()还支持计数指定元素的出现次数。示例代码如下:

from collections import Counter

lst = [1, 2, 3, 1, 2, 3, 4, 5, 6, 2, 3]
cnt = Counter(lst)
print(cnt[2])  # 输出元素2出现的次数,结果为3

输出结果如下:

3

3.2 更新计数器

Counter()对象还支持更新计数器的操作。可以使用update()方法将另一个可迭代对象中的元素的计数合并到当前计数器中。示例代码如下:

from collections import Counter

cnt1 = Counter('hello')
cnt2 = Counter('world')
cnt1.update(cnt2)
print(cnt1)

输出结果如下:

Counter({'l': 3, 'o': 2, 'e': 1, 'h': 1, 'w': 1, 'r': 1, 'd': 1})

4. 总结

collections.Counter()是Python中用于计数可哈希对象出现次数的强大工具。它的基本用法简单易懂,同时还有一些高级用法可以方便地处理一些计数相关的问题。