一、计数器(counter)

Counter是对字典类型的补充,用于追踪值的出现次数。

ps:具备字典的所有功能 + 自己的功能

  1. 把我写入的元素出现的多少次都计算出来
  1. import collections
  2.  
  3. # 创建一个Counter对象
  4. obj = collections.Counter('ddccbbqqaaa')
  5. print(obj)
  6.  
  7. '''
  8. 把我写入的元素出现的多少次都计算出来
  9. Counter({'a': 3, 'd': 2, 'c': 2, 'b': 2, 'q': 2})
  10.  
  11. '''
  1. obj.most_common()
    要取多少得值
  1. import collections
  2.  
  3. # 创建一个Counter对象
  4. obj = collections.Counter('ddccbbqqaaa')
  5. print(obj)
  6.  
  7. '''
  8. 把我写入的元素出现的多少次都计算出来
  9. Counter({'a': 3, 'd': 2, 'c': 2, 'b': 2, 'q': 2})
  10.  
  11. '''
  12.  
  13. ret = obj.most_common(4)
  14. print(ret)
  15.  
  16. # 取前4位
  17. # [('a', 3), ('d', 2), ('c', 2), ('b', 2)]

循环字典

  1. import collections
  2.  
  3. # 创建一个Counter对象
  4. obj = collections.Counter('ddccbbqqaaa')
  5. print(obj)
  6.  
  7. # Counter({'a': 3, 'd': 2, 'c': 2, 'b': 2, 'q': 2})
  8.  
  9. # 循环 字典
  10.  
  11. for i in obj:
  12. print(i,obj[i])
  13.  
  14. '''
  15. d 2
  16. c 2
  17. b 2
  18. q 2
  19. a 3
  20. '''
  1. elements() 传的是原生的值
  1. import collections
  2.  
  3. # 创建一个Counter对象
  4. obj = collections.Counter("dd")
  5.  
  6. # elements() 传的是原生的值
  7. print(list(obj.elements()))
  8.  
  9. # ['d', 'd']
  10.  
  11. obj = collections.Counter(['','','',''])
  12.  
  13. print(list(obj.elements()))
  14. # ['1', '2', '3', '4']
  1. update() 更新计数器 增加
    在原来基础上添加
  1. import collections
  2.  
  3. # 创建一个Counter对象
  4.  
  5. obj = collections.Counter(['','','',''])
  6.  
  7. print(obj)
  8. # Counter({'22': 2, '11': 1, '44': 1})
  9.  
  10. # update() 更新计数器
  11. obj.update(["","","eric"])
  12. print(obj)
  13. # Counter({'11': 3, '22': 2, '44': 1, 'eric': 1})
  1. subtract()
    删除
  1. 原来的计数器中的每一个元素的数量减去后添加的元素的数量
  1.  
  1. import collections
  2.  
  3. # 创建一个Counter对象
  4.  
  5. obj = collections.Counter(['','','',''])
  6.  
  7. print(obj)
  8. # Counter({'22': 2, '11': 1, '44': 1})
  9.  
  10. # update() 更新计数器
  11. obj.update(["","","eric"])
  12. print(obj)
  13. # Counter({'11': 3, '22': 2, '44': 1, 'eric': 1})
  14.  
  15. obj.subtract(['eric'])
  16. print(obj)
  17.  
  18. # Counter({'11': 3, '22': 2, '44': 1, 'eric': 0})
  1. import collections
  2.  
  3. # 创建一个Counter对象
  4.  
  5. obj = collections.Counter(['','','',''])
  6.  
  7. print(obj)
  8. # Counter({'22': 2, '11': 1, '44': 1})
  9.  
  10. obj.subtract(['eric','','',''])
  11. print(obj)
  12.  
  13. # Counter({'11': 1, '44': 1, '22': -1, 'eric': -1})

python collections模块 计数器(counter)的更多相关文章

  1. Python标准库——collections模块的Counter类

    1.collections模块 collections模块自Python 2.4版本开始被引入,包含了dict.set.list.tuple以外的一些特殊的容器类型,分别是: OrderedDict类 ...

  2. Python collections模块总结

    Python collections模块总结 除了我们使用的那些基础的数据结构,还有包括其它的一些模块提供的数据结构,有时甚至比基础的数据结构还要好用. collections ChainMap 这是 ...

  3. (转)python collections模块详解

    python collections模块详解 原文:http://www.cnblogs.com/dahu-daqing/p/7040490.html 1.模块简介 collections包含了一些特 ...

  4. Python中Collections模块的Counter容器类使用教程

    1.collections模块 collections模块自Python 2.4版本开始被引入,包含了dict.set.list.tuple以外的一些特殊的容器类型,分别是: OrderedDict类 ...

  5. Python collections 模块用法举例

    Python作为一个“内置电池”的编程语言,标准库里面拥有非常多好用的模块.比如今天想给大家 介绍的 collections 就是一个非常好的例子. 1.collections模块基本介绍 我们都知道 ...

  6. python collections模块

    collections模块基本介绍 collections在通用的容器dict,list,set和tuple之上提供了几个可选的数据类型 namedtuple() factory function f ...

  7. Python——collections模块

    collections模块 collections模块在内置数据类型(dict.list.set.tuple)的基础上,还提供了几个额外的数据类型:ChainMap.Counter.deque.def ...

  8. Python——collections模块、time模块、random模块、os模块、sys模块

    1. collections模块 (1)namedtuple # (1)点的坐标 from collections import namedtuple Point = namedtuple('poin ...

  9. python collections模块详解

    参考老顽童博客,他写的很详细,例子也很容易操作和理解. 1.模块简介 collections包含了一些特殊的容器,针对Python内置的容器,例如list.dict.set和tuple,提供了另一种选 ...

随机推荐

  1. STM32CubeMX软件工程描述_USART配置过程

    推荐 分享一个朋友的人工智能教程,零基础!通俗易懂!希望你也加入到人工智能的队伍中来! http://www.captainbed.net/strongerhuang Ⅰ.写在前面 学习本文之前可以查 ...

  2. Java中的阻塞队列(BlockingQueue)

    1. 什么是阻塞队列 阻塞队列(BlockingQueue)是 Java 5 并发新特性中的内容,阻塞队列的接口是 java.util.concurrent.BlockingQueue,它提供了两个附 ...

  3. C++和Java函数传递数组参数比较

    如果我想实现函数参数传递数组的业务需求,在Java中很容易实现,如下所示.因为Java有.length方法,可以获取数组的长度. public class Test { public static v ...

  4. 考试星陈沧:借助Testin云測加速实现”考试电子化”目标

    考试星陈沧:借助Testin云測加速实现"考试电子化"目标 2014/10/11 · Testin · 开发人员訪谈 考试星国内首款在线考试云平台,可用于企业内部考核,经销商考核, ...

  5. 第二百七十二节,Tornado框架-iframe标签框架伪造ajax

    Tornado框架-iframe标签框架伪造ajax html <!DOCTYPE html> <html> <head lang="en"> ...

  6. jQuery补充,模拟图片放大镜

    jQuery补充,模拟图片放大镜 html <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  7. OGNL支持各种纷繁复杂的表达式

    OGNL支持各种纷繁复杂的表达式.但是最最基本的表达式的原型,是将对象的引用值用点串联起来,从左到右,每一次表达式计算返回的结果成为当前对象,后面部分接着在当前对象上进行计算,一直到全部表达式计算完成 ...

  8. json转datatable(正则表达式的方法)

    /// <summary> /// 将json转换为DataTable /// </summary> /// <param name="strJson" ...

  9. ThinkPHP中的验证码不出现的解决办法

    出现这种问题的原因可能是因为代码写的不规范,出现了其他的输出:解决办法: 原代码:     public function captchaAction()    {        $verify = ...

  10. ztree获取选中节点时不能进入可视区域出现BUG如何解决

    zTree 是一个依靠 jQuery 实现的多功能 “树插件”.优异的性能.灵活的配置.多种功能的组合是 zTree 最大优点. zTree 的特点编辑 ● zTree v3.0 将核心代码按照功能进 ...