Counter 是字典类的一个子类可以用来统计可以查数目的对象中元素个数的。
c = Counter() # a new, empty counter
c = Counter('gallahad') # a new counter from an iterable
c = Counter({'red': 4, 'blue': 2}) # a new counter from a mapping
c = Counter(cats=4, dogs=8) # a new counter from keyword args
对于没有的元素进行查询时会返回 0 而不会报错。
如果要想把一个元素从计数器中移出,要使用del
与字典对象相比,计数器对象还有三个额外的方法:
c = Counter(a=4, b=2, c=0, d=-2)
list(c.elements())
#['a', 'a', 'a', 'a', 'b', 'b']
两个 Counter 对象还支持+,-,&,|等逻辑与运算。
+c # remove zero and negative counts
c = Counter(a=3, b=1)
d = Counter(a=1, b=2)
c + d # add two counters together: c[x] + d[x]
c - d # subtract (keeping only positive counts)
c & d # intersection: min(c[x], d[x])
c | d # union: max(c[x], d[x])