python之collections.Counter函数介绍

        collections.Counter 是 Python 标准库中的一个内置类,用于计数可哈希对象(例如列表、字符串等)的出现次数。它提供了一种方便且高效的方式来进行计数操作。下面是对 collections.Counter 的介绍。

1. 创建 Counter 对象

        可以通过传递可迭代对象(如列表、字符串等)给 Counter 类来创建一个计数器对象。

        也可以使用大括号 {} 和键值对的形式来创建一个计数器对象。

示例:

from collections import Counter

# 通过可迭代对象创建计数器对象
my_list = [1, 2, 3, 1, 2, 1, 3, 4]
counter1 = Counter(my_list)
print(counter1)

# 使用键值对创建计数器对象
counter2 = Counter({'a': 3, 'b': 2, 'c': 1})
print(counter2)

输出:

Counter({1: 3, 2: 2, 3: 2, 4: 1})
Counter({'a': 3, 'b': 2, 'c': 1})

2. 计数器操作

        Counter 对象具有类似字典的操作方式,并提供了一些额外的方法。

                可以使用索引操作符 [key] 获取指定键的计数值。

                可以使用 elements() 方法获取计数器中的所有元素。

                可以使用 most_common([n]) 方法获取计数器中出现次数最多的前 n 个元素。

示例:

from collections import Counter

my_list = [1, 2, 3, 1, 2, 1, 3, 4]
counter = Counter(my_list)

print(counter[1])  # 获取键 1 的计数值
print(list(counter.elements()))  # 获取计数器中的所有元素
print(counter.most_common(2))  # 获取出现次数最多的前 2 个元素

输出:

3
[1, 1, 1, 2, 2, 3, 3, 4]
[(1, 3), (2, 2)]

 3. 计数器的其他操作方法

        Counter 类还提供了其他一些操作方法,例如 update()、subtract()、clear() 等,用于更新计数器、减少计数器中的元素,以及清空计数器。

示例:

from collections import Counter

counter = Counter(a=3, b=2, c=1)
print(counter)

counter.update({'a': 2, 'b': 1, 'd': 4})  # 更新计数器
print(counter)

counter.subtract({'a': 1, 'b': 2, 'c': 3})  # 减少计数器中的元素
print(counter)

counter.clear()  # 清空计数器
print(counter)

输出:

Counter({'a': 3, 'b': 2, 'c': 1})
Counter({'d': 4, 'a': 5, 'b': 3, 'c': 1})
Counter({'a': 4, 'b': 1, 'd': 4, 'c': -2})
Counter()

 4. 总结

        总结来说,collections.Counter 提供了一种方便且高效的计数操作,用于计算可哈希对象的出现次数。它可以通过传递可迭代对象或使用键值对的形式来创建计数器对象,支持类似字典的操作方式,并提供了额外的方法来获取元素的计数值、获取所有元素和获取出现次数最多的元素。此外,计数器对象还支持更新、减少和清空操作。

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值