Counter

2022-09-05 17:07:50 浏览数 (1)

Counter 是字典类的一个子类可以用来统计可以查数目的对象中元素个数的。

代码语言:javascript复制
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 与字典对象相比,计数器对象还有三个额外的方法:

  • elements():返回一个和统计结果完全一致的列表。
代码语言:javascript复制
c = Counter(a=4, b=2, c=0, d=-2)
list(c.elements())
#['a', 'a', 'a', 'a', 'b', 'b']
  • most_common([n]):按照出现频率从高到低返回 n 个元素,同样多的元素会被随机排序。
  • subtract([iterable-or-mapping]):按照输入的参数来减掉对应的数字。

两个 Counter 对象还支持 ,-,&,|等逻辑与运算。

代码语言:javascript复制
 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])

0 人点赞