如果要使用 Counter,必须要进行实例化,在实例化的同时可以为构造函数传入参数来指定不同类型的元素来源。
Counter是一个简单的计数器,例如,统计字符出现的个数。
示例:传一个序列,统计出序列中的元素个数

from collections import Counter
c = Counter('woodman')
print(c) # 默认排序倒叙
print(c.most_common(3)) # 获取前三位
print(sum(c.values())) # 汇总统计,相当于len('woodman')

输出:

Counter({'o': 2, 'w': 1, 'd': 1, 'm': 1, 'a': 1, 'n': 1})
[('o', 2), ('w', 1), ('d', 1)]
7

在很多使用到dict和次数的场景下,Python中用Counter来实现会非常简洁,效率也会很高

Counter 中的方法

Counter 类继承自 dict 类,所以 Counter 类可以使用 dict 类的方法。

Counter 特有的方法:

1.elements()

elements()方法返回一个迭代器,可以通过 list 或者其它方法将迭代器中的元素输出,输出的结果为对应出现次数的元素。

c = Counter({'a':1, 'b':2, 'c':3})
c2 = Counter({'a':0, 'b':-1, 'c':3}) # 将出现次数设置为 0 和负值>>> print(c.elements())
<itertools.chain object at 0x0000022A57509B70>
>>> print(list(c.elements()))
['a', 'b', 'b', 'c', 'c', 'c'] >>> print(c2.elements())
<itertools.chain object at 0x0000022A57509B70>
>>> print(list(c2.elements()))
['c', 'c', 'c']
2.most_common([n])

返回一个出现次数从大到小的前 n 个元素的列表。

  • 不输入n,默认返回所有;
  • 输入n小于最长长度,则返回前n个数;
  • 输入n等于最长长度,则返回所有;
  • 输入n = -1,则返回空;
c = Counter({'a':1, 'b':2, 'c':3})>>> print(c.most_common()) # 默认参数
[('c', 3), ('b', 2), ('a', 1)]
>>> print(c.most_common(2)) # n = 2[('c', 3), ('b', 2)]
>>> print(c.most_common(3)) # n = 3
[('c', 3), ('b', 2), ('a', 1)]
>>> print(c.most_common(-1)) # n = -1
[]
3.subtract([iterable-or-mapping])

将两个 Counter 对象中的元素对应的计数相减。

c = Counter({'a':1, 'b':2, 'c':3})
d = Counter({'a':1, 'b':3, 'c':2, 'd':2})
c.subtract(d)>>> print(c)
Counter({'c': 1, 'a': 0, 'b': -1, 'd': -2})

字典方法

一般常规的字典方法对 Counter 对象都是有效的,但是在 Counter 中有两个方法和字典中的使用有些区别。

1.fromkeys(iterable)

没有为Counter对象实现该函数

2.update([iterable-or-mapping])

增加count而不是用新的count取代旧的count。

from collections import Counterc = Counter({'a':1, 'b':2, 'c':3, 'd':0, 'e':-1})c.update({'a':2, 'd':2, 'e':1})>>> print(c)
Counter({'a': 3, 'c': 3, 'b': 2, 'd': 2, 'e': 0})

对于 Counter 中的update函数简单来说,就是增加对应元素的计数。

集合运算符

sum(c.values())                 # total of all counts
c.clear()                       # reset all counts
list(c)                         # list unique elements
set(c)                          # convert to a set
dict(c)                         # convert to a regular dictionary
c.items()                       # convert to a list of (elem, cnt) pairs
Counter(dict(list_of_pairs))    # convert from a list of (elem, cnt) pairs
c.most_common()[:-n-1:-1]       # n least common elements
c += Counter()                  # 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]
Counter({'a': 4, 'b': 3})
>>> c - d                       # subtract (keeping only positive counts)
Counter({'a': 2})
>>> c & d                       # intersection:  min(c[x], d[x])
Counter({'a': 1, 'b': 1})
>>> c | d                       # union:  max(c[x], d[x])
Counter({'a': 3, 'b': 2})

参考地址:https://docs.python.org/2/library/collections.html#collections.Counter.most_common

from collections import Counter计数器相关推荐

  1. Counter 用法 from collections import Counter

    from collections import Counter a = [1,4,2,3,2,3,4,2] b = Counter(a) #求数组中每个数字出现了几次 print(b)print( b ...

  2. (Python)from collections import Counter统计包

    用法 这里有个文件 from collections import Counterf=open('file.txt','r')a=f.read()print Counter(a) 得到flag:DCT ...

  3. Python标准库collections库:超好用的counter计数器,不接受反驳!

    collections是python的标准库,它提供了一些解决特定问题的容器,也就是说有些问题虽然可以用list,tuple,dict解决,但解决起来太麻烦,而这些问题又经常遇到,所以他们就把这些问题 ...

  4. 【Python基础】Python之collections库-Counter

    一.模块概述 1.模块作用 官方说法:collections模块实现了特定目标的容器,以提供Python标准内建容器dict ,list , set , 和tuple的替代选择. 通俗说法:Pytho ...

  5. Collections中Counter函数,namedtuple函数,defaultdict函数的使用

    #python中collections工具包的一点使用 #组织特征数据用namedtuple函数 from collections import namedtuple Features = named ...

  6. Python里最好用的counter计数器,不接受反驳!

    collections是python的标准库,它提供了一些解决特定问题的容器,也就是说有些问题虽然可以用list,tuple,dict解决,但解决起来太麻烦,而这些问题又经常遇到,所以他们就把这些问题 ...

  7. MapReducer Counter计数器的使用,Combiner ,Partitioner,Sort,Grop的使用,

    一:Counter计数器的使用 hadoop计数器:可以让开发人员以全局的视角来审查程序的运行情况以及各项指标,及时做出错误诊断并进行相应处理. 内置计数器(MapReduce相关.文件系统相关和作业 ...

  8. Python——from collections import namedtuple

    Python--from collections import namedtuple 在读SSD源码中看到 namedtuple这个子类,这可以理解为元祖的升级版.细节看官方文档. collectio ...

  9. counter 计数器

    包含了两个属性和一个方法: 1. counter-reset 2. counter-increment 3. counter()/counters() counter-reset(主要作用就是给计数器 ...

  10. CSS counter计数器(content目录序号自动递增)详解

    一.挖坟不可耻 说到报数,是否想起了教官的嘹亮口号:"生信4班,立正,稍息,开始1,2,3,4报数!" 其中有这么几个关键点: 1. 班级命名.总不能六脉神剑一指,你,侬,汝来称呼 ...

最新文章

  1. AOP 注入失败的问题
  2. 博客园写代码发家的大牛
  3. java方法生命周期_Java线程的第二种实现方式以及生命周期
  4. Flink的UDF写法整理
  5. ssl1776-游乐场【图论,深搜】
  6. lodash按需引入
  7. asp.net中如何解决4M以上文件的上传
  8. 校验电话号码 手机号码正则表达式————转载
  9. 在Qt下使用映美精黑白相机:Qt 5.12 + ImagingSource(映美精)+ vs2017 Community + OpenCV 3.3
  10. MATLAB的cat函数
  11. 高等数学关于切线,法线,切平面,法平面的详细解释
  12. 第四章软件项目进度管理
  13. 答题系统 html源码,答题系统.html
  14. 【js学习笔记】去除省、市、区、特别行政区、自治区
  15. 使用reCAPTCHA实现验证码
  16. 【泛微】EM7的消息服务9090端口的后台密码忘记了怎么办?
  17. Notepad2 可以替换xp记事本Notepad
  18. vue中的怎么获取localStorage的信息
  19. itunes备份后恢复失败,恢复按钮变灰。个人解决方案
  20. 简单好听的id_王者荣耀:玩家id大盘点!看到这些好听的id立马就去建新号

热门文章

  1. (软考高级、高项)信息系统项目管理师(第三版)过关经验
  2. 计算机视觉隐私安全,震惊:用手机拍照也可以暴露大量个人隐私
  3. oracle revoke 列_oracle受权与回收权限grant和revoke
  4. 出现C:\Users\liu\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\contrib\rnn\pytho
  5. 朗兰兹纲领:关于数学大一统的伟大构想
  6. 一下科技何一:移动视频风口,内容创业者如何飞升?
  7. (完美解决)升级win10,提示VirtualBox 立即卸载此应用,因为它与Windows 10 不兼容
  8. 解决笔记本更换固态硬盘,将机械盘放置光驱位后,机械盘休眠导致卡顿问题
  9. SQL在执行JOIN ON时,到底发生了什么?
  10. ❤️FFmpeg❤️ MP4格式文件,将MPEG4的编码方式转为H.264