发布时间:2026-05-25阅读(0)

Counter是collections模块的Counter类。collections中一共有9种容器,其中counter、defaultdict、deque、namedtuple、orderdict比较常用。
计数器(Counter)是一个无序容器,用于记录各种值出现的次数。
它采用键值对的形式存储,要记录的值作为key,这个值出现的次数作为value,value值可正可负。
创建计数器# 创建一个空实例c = collections.Counter()# 从list创建c = collections.Counter([a, a, b, b, c])# 从tuple创建c = collections.Counter((a, a, b, b, c))# 从dict创建c = collections.Counter({a: 2, b: 2, c: 1})# 从字符串创建c = collections.Counter("hello world")# 从键值参数创建c = collections.Counter(a=2, b=2, c=1)
计数器是dict的子类,因此可以像使用dict那样访问计数器元素:
print(c[h])print(c[w])
当访问计数器中不存在的元素的时候,返回0
print(c[x])
从计数器中加上可迭代对象(www)中各种值出现的次数
c.update("www")
从计数器中减去可迭代对象(www)中各种值出现的次数
c.subtract("www")
计数器中一个元素的值减少到0时,不会自动从计数器中删除,如果要删除可以使用del函数。
del (c[-])
获取出现次数最多的n个元素,返回包含这些元素的list
出现次数最多的元素
top1 = c.most_common(1)
出现次数最多的两个元素
top2 = c.most_common(2)
不提供参数则返回所有元素
topx = c.most_common()
c = collections.Counter((1, 2, 3, 4, 5))d = collections.Counter((4, 5, 6, 7, 8))print(c, dict(c))print(d, dict(d))print(c d, c d)print(c - d, c - d)print(c & d, c & d)print(c | d, c | d)
输出
c {1: 1, 2: 1, 3: 1, 4: 1, 5: 1}d {4: 1, 5: 1, 6: 1, 7: 1, 8: 1}c d Counter({4: 2, 5: 2, 1: 1, 2: 1, 3: 1, 6: 1, 7: 1, 8: 1})c - d Counter({1: 1, 2: 1, 3: 1})c & d Counter({4: 1, 5: 1})c | d Counter({1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 1, 8: 1})
参考:https://blog.csdn.net/JohnJim0/article/details/116985770https://blog.csdn.net/yelitoudu/article/details/116115012
Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图