Counter是Python中用于统计元素频次的高效工具,支持列表、字符串等可迭代对象;其以字典形式返回结果,键为元素,值为出现次数;可进行访问计数、获取最常见元素、更新或减去数据及数学运算;适用于词频统计、判断异位词和算法题等场景。
Python 的 collections.Counter 是一个非常实用的工具,用于统计可迭代对象中元素的出现次数。它属于 collections 模块,使用起来简洁高效,特别适合处理计数相关的任务。
Counter 接收一个可迭代对象(如列表、字符串、元组等),自动统计每个元素出现的次数,并以字典形式返回,键是元素,值是对应的计数。
from collections import Counter统计列表中的元素
cnt1 = Counter(['a', 'b', 'a', 'c', 'b', 'a']) print(cnt1) # 输出: Counter({'a': 3, 'b': 2, 'c': 1})
统计字符串中字符
cnt2 = Counter('hello') print(cnt2) # 输出: Counter({'l': 2, 'h': 1, 'e': 1, 'o': 1})
Counter 不仅能计数,还支持多种便捷操作:
counter[key],如果 key 不存在,返回 0 而不是报错。most_common(n) 获取前 n 个频率最高的元素。update() 添加更多数据;使用 subtract() 减去计数。cnt = Counter(['x', 'y', 'x'])print(cnt['x']) # 输出: 3 print(cnt['z']) # 输出: 0 (不会报
错)
print(cnt.most_common(2)) # 输出: [('x', 2), ('y', 1)]
cnt.update(['x', 'z']) # 增加新数据 print(cnt) # x:3, y:1, z:1
cnt.subtract(['x']) # 减去计数 print(cnt) # x:2, y:1, z:1
Counter 在实际编程中用途广泛:
基本上就这些。Counter 让计数变得直观又高效,掌握它能让代码更简洁清晰。