前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【编程课堂】计数器 Counter

【编程课堂】计数器 Counter

作者头像
Crossin先生
发布2018-04-17 14:06:56
1.1K0
发布2018-04-17 14:06:56
举报
文章被收录于专栏:Crossin的编程教室

上一期的编程课堂我们介绍了 有序字典 OrderedDict,这一期我们再来聊聊 同属 collections 模块的另一种数据类型 Counter

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

代码语言:javascript
复制
list1 = ['red','green','red','blue','green','red']

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

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

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

关于 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.

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

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

初始化可迭代对象

代码语言:javascript
复制
>>> from collections import Counter
>>> Counter('adffdsads')
Counter({'d': 3, 'f': 2, 's': 2, 'a': 2})

初始化映射对象

代码语言:javascript
复制
>>> Counter({'red':1,'green':2})
Counter({'green': 2, 'red': 1})

初始化关键字参数对象

代码语言:javascript
复制
>>> Counter(cats=4,dogs=8)
Counter({'dogs': 8, 'cats': 4})

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

下面看个 Counter 的常用方法:

most_common(n)

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

代码语言:javascript
复制
>>> c = Counter('adffdsads')
>>> c.most_common(3)
[('d', 3), ('a', 2), ('f', 2)]

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-03-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Crossin的编程教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • most_common(n)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档