在了解 Counter 之前,请大家思考一个问题,现在有包含多个词汇的列表:

list1 = ['red','green','red','blue','green','red']

该如何去统计列表中各词汇出现的次数?

如果再深入一些,如何统计一本小说中,作者所用词汇出现的次数?

Python 里提供了一个优雅简洁的解决方案:Counter

list1 = ['red','green','red','blue','green','red']

print Counter(list1)

Counter({'red': 3, 'green': 2, 'blue': 1})

关于 Counter ,在官方文档中可以找到如下描述:

A Counter is a dict subclass for counting hashable objects. It is an unordered collection where elements are stored as dictionary keys and their counts are stored as dictionary values. Counts are allowed to be any integer value including zero or negative counts.

Counter 是 dict 的子类,是用于计数。它是一个无序的集合,其中元素存储为字典键,其计数存储为字典值。计数允许为包括零或负计数的任何整数值。

在 Python Shell 里演示一下。初始化一个 Counter 对象的几种方法:

初始化可迭代对象

>>>from collections import Counter >>>Counter('adffdsads')

Counter({'d': 3, 'f': 2, 's': 2, 'a': 2})

初始化映射对象

>>>Counter({'red':1,'green':2})

Counter({'green': 2, 'red': 1})

初始化关键字参数对象

>>>Counter(cats=4,dogs=8)

Counter({'dogs': 8, 'cats': 4})

Counter 是 dict 的子类,所以你可以放心地像 dict 一样来使用它。具体可参考 【Python 第37课】 字典。

下面看个 Counter 的常用方法:

most_common(n)

返回一个列表,包含 n 个最常见的元素已经他们的计数,如果 n 为空,则返回所有元素。

>>> c = Counter('adffdsads') >>> c.most_common(3)

[('d', 3), ('a', 2), ('f', 2)]

通过此方法,你就可以很方便地找出频率最高的元素,省去了计数和排序的麻烦。

关于 Counter  就介绍到这里。好记性不如烂笔头,赶紧拿每期 每周一坑 里的题目来练练手吧。

python计数器_【Python】计数器 Counter相关推荐

  1. 用74ls90组成二十四进制计数器_减法计数器的组成以及原理

    异步二进制减法计数器如图1-1所示 减法计数器的结构原理 1-1减法计数器的结构原理 该计数器是一个3位二进制异步减法计数器,它与前面介绍过的3位二进制异步加法计 数器一样,是由3个JK触发器组成,其 ...

  2. 初识python 视频_#python day02 初识python 学习视频来源于 太白金星

    #python day02 初识python 学习视频来源于 太白金星 ''' 知识点:安装PyCharm''' # 设置鼠标条件字体大小:file ->settings # 搜索mouse E ...

  3. 汉诺塔问题递归算法python代码_[python]汉诺塔问题递归实现

    一.问题描述及算法步骤 汉诺塔问题的大意是有三根柱子a, b, c,现在a柱有N个盘子从下往上尺寸递减排列,要求: 1. 将a上的盘子移动到c柱上; 2. 每次移动一个盘子; 3. 柱子上的盘子始终必 ...

  4. python数据模型_#PYTHON#数据模型 | 学步园

    今天,谈谈python中的数据模型,当然你可以不了解这些东西,照样可以写出漂亮的python代码,但是"知其然知其所以然"是我的作风,总是不明白python的一些机制,心里很不爽. ...

  5. python评价指标_[Python人工智能] 六.神经网络的评价指标、特征标准化和特征选择...

    从本系列文章开始,作者正式开始研究Python深度学习.神经网络及人工智能相关知识.前五篇文章讲解了神经网络基础概念.Theano库的安装过程及基础用法.theano实现回归神经网络.theano实现 ...

  6. 小甲鱼python笔记_[Python]之前初学python,看小甲鱼视频的笔记(未整理)

    BIF == Built-in functions (内置函数) 用冒号: 而不是分号: 001作业 0.Python是一种面向对象的脚本语言. 1.IDLE是python的一个shell. 2.输出 ...

  7. python低通滤波器_[Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波

    [Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波 发布时间:2019-04-28 20:35, 浏览次数:2739 , 标签: Python 该系列文章是讲解Python OpenCV ...

  8. python 递归函数 - 刘江的python教程_[PYTHON系列教程]→递归函数

    在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数.举个例子,我们来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示,可以看出:fa ...

  9. 哆啦a梦简单图画python编程_[python]画哆啦A梦,Python,绘制

    from turtle import * #无轨迹跳跃 defmy_goto(x, y): penup() goto(x, y) pendown()#眼睛 defeyes(): fillcolor(& ...

  10. python加法器_[python bottle] 网页加法器

    QPython 操作效果 代码: from bottle import Bottle, ServerAdapter from bottle import run, route #### 调用 qpy ...

最新文章

  1. 进程和线程基础知识全家桶,30 张图一套带走
  2. XiaoluD的留言板
  3. 《Google软件测试之道》- Google软件测试介绍
  4. mysql的关键词使用顺序_sql关键词执行先后顺序是什么
  5. win10计算机右键属性打不开,win10系统右键计算机无法打开属性窗口的解决技巧...
  6. HDU2023求平均成绩
  7. 获取http请求响应头
  8. 计算机网络西北大学,西北大学计算机网络复习资料 (拟).doc
  9. VLAN端口转发原则
  10. Android手势的识别
  11. “send“ and “transfer“ are only available for objects of type “address payable“, not “address
  12. 50.Nginx负载均衡 ssl原理 密钥对 配置ssl
  13. 海龟交易法则14_掌控心魔
  14. WordPress博客添加首页、文章页、页面、分类页、标签页的关键字和描述
  15. linux2.6.34编译安装,ubuntu 10.04 编译安装最新版本linux-2.6.34内核
  16. 【魔兽世界】WLK版本的常规宏教程
  17. 《python 计算机视觉编程》教程+图片+代码
  18. Android笔记(3)使用dataBinding数据的错误啊啊啊啊啊啊啊啊!!!!
  19. OpenGl 之学习笔记 glNormal3f 函数理解和光源相关知识总结
  20. Hbase篇(7)-Region的分裂

热门文章

  1. 君子一诺(爱情故事)
  2. 教你用ps抽出抠散发
  3. 软件系统开发的先行军——原型系统
  4. python 批量移动文件
  5. 基于51单片机的倒计时秒表proteus仿真设计
  6. 从零开始做手机云台/稳定器
  7. linux程序 tty没了,linux – 提示自定义:如何检测何时没有tty
  8. 简单典型二阶系统_自控第3章 自动控制系统的时域分析(2)
  9. Mac电脑隔空投递如何添加到菜单栏?
  10. php中使用视频流的方式播放视频。