信息发布→ 登录 注册 退出

python collections.Counter的计数

发布时间:2025-11-16

点击量:
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() 减去计数。
  • 数学运算:支持 +、-、&、| 等集合风格的运算,适用于合并或比较多个 Counter。

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 是否相等)。
  • 配合正则表达式清洗并分析日志或用户输入。
  • 在算法题中简化频次统计逻辑,比如“找出只出现一次的元素”。

基本上就这些。Counter 让计数变得直观又高效,掌握它能让代码更简洁清晰。

标签:# python  # 正则表达式  # 工具  # 可迭代对象  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!