c语言编程笔录

首页 >   > 笔记大全

笔记大全

Python计数器collectionsCounter怎么使用

更新时间:2023-11-28

Python计数器collections.Counter简介

Python中的collections模块提供了一个名为Counter的计数器工具,该工具可用于跟踪迭代中每个元素的出现次数。

可以快速、高效地执行各种与计数相关的任务,例如找到最常用的词语、统计文件中的行数以及计算数据中的频率分布。

Counter的基本用法

from collections import Counter

# Counter的初始化
lst = [1,1,2,3,4,4,4,5,5]
c = Counter(lst)

# Counter对象的基本操作
print(c)    # 输出: Counter({4: 3, 1: 2, 5: 2, 2: 1, 3: 1})
print(c[4])    # 输出: 3
print(c[6])    # 输出: 0
print(list(c.elements()))    # 输出: [1, 1, 2, 3, 4, 4, 4, 5, 5]

可以看到,Counter类似于字典,其中元素作为键,出现次数作为值。可以使用索引访问Counter中的元素以获取其出现次数,并使用elements()方法获取生成器对象,该对象可以将每个元素重复其出现次数次。

计数器的高级用法

Counter可以自己增加元素,也可以更新另一个Counter对象中的元素。可以使用标准算术运算符(如+、-、&和|)进行Counter对象之间的计算。

# Counter的高级使用
c.update([1,2,3,4,5])
print(c)    # 输出: Counter({1: 3, 4: 3, 5: 3, 2: 2, 3: 2})
d = Counter([2,3,4,5,6])
print(c + d)    # 输出: Counter({2: 3, 3: 3, 4: 3, 5: 3, 1: 3, 6: 1})
print(c - d)    # 输出: Counter({1: 3})
print(c & d)    # 输出: Counter({2: 1, 3: 1, 4: 1, 5: 1})
print(c | d)    # 输出: Counter({1: 3, 4: 3, 5: 3, 2: 2, 3: 2, 6: 1})

可以使用update()方法将计数器对象中的元素添加到当前计数器中。注意,如果使用update()方法,对于字符串和字符列表,它会计算字符而不是单个元素。

Counter对象还提供most_common()方法,该方法返回出现次数最多的元素及其计数,按顺序从最多到最少。

# most_common()方法
print(c.most_common(3))    # 输出: [(1, 3), (4, 3), (5, 3)]

总结

collections模块的Counter类是一种高效地计算元素频率分布的工具,可以用于各种场景,包括查找最常见的元素、统计项目出现的次数以及计算数据序列的频率分布。

计数器的初始化、元素访问、更新和高级用法包括元素增加、Counter对象更新、两个计数器之间的标准计算以及most_common()方法。