python中统计计数的几种方法

以下实例展示了 count() 方法的使用方法:

以上实例输出结果如下:

1) 使用字典dict()

循环遍历出一个可迭代对象中的元素,如果字典没有该元素,那么就让该元素作为字典的键,并将该键赋值为1,如果存在就将该元素对应的值加1.

2) 使用defaultdict()

defaultdict(parameter)可以接受一个类型参数,如str,int等,但传递进来的类型参数,不是用来约束值的类型,更不是约束键的类型,而是当键不存在的话,实现一种值的初始化

defaultdict(int):初始化为 0

defaultdict(float):初始化为 0.0

defaultdict(str):初始化为 ”

3)使用集合(set)和列表(list)

先使用set去重,然后循环的把每一个元素和每一个元素对应的次数lists.count(item)组成一个元组放在列表里面

4)使用Counter

Counter是一个容器对象,主要的作用是用来统计散列对象,可以使用三种方式来初始化

参数里面参数可迭代对象 Counter(“success”)

传入关键字参数Counter((s=3,c=2,e=1,u=1))

传入字典 Counter({“s”:3,“c”=2,“e”=1,“u”=1})

Counter()对象还有几个可以调用的方法,代码里面分别进行了说明

1.collections模块

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

OrderedDict类:排序字典,是字典的子类。引入自2.7。

namedtuple()函数:命名元组,是一个工厂函数。引入自2.6。

Counter类:为hashable对象计数,是字典的子类。引入自2.7。

deque:双向队列。引入自2.4。

defaultdict:使用工厂函数创建字典,使不用考虑缺失的字典键。引入自2.5。

2.Counter类

Counter类的目的是用来跟踪值出现的次数。它是一个无序的容器类型,以字典的键值对形式存储,其中元素作为key,其计数作为value。计数值可以是任意的Interger(包括0和负数)。Counter类和其他语言的bags或multisets很相似。

2.1 创建

下面的代码说明了Counter类创建的四种方法:

2.2 计数值的访问与缺失的键

当所访问的键不存在时,返回0,而不是KeyError;否则返回它的计数。

2.3 计数器的更新(update和subtract)

可以使用一个iterable对象或者另一个Counter对象来更新键值。

计数器的更新包括增加和减少两种。其中,增加使用update()方法:

减少则使用subtract()方法:

2.4 键的删除

当计数值为0时,并不意味着元素被删除,删除元素应当使用del。

2.5 elements()

返回一个迭代器。元素被重复了多少次,在该迭代器中就包含多少个该元素。元素排列无确定顺序,个数小于1的元素不被包含。

2.6 most_common([n])

返回一个TopN列表。如果n没有被指定,则返回所有元素。当多个元素计数值相同时,排列是无确定顺序的。

2.7 fromkeys

未实现的类方法。

2.8 浅拷贝copy

2.9 算术和集合操作

+、-、&、|操作也可以用于Counter。其中&和|操作分别返回两个Counter对象各元素的最小值和最大值。需要注意的是,得到的Counter对象将删除小于1的元素。

3.常用操作

下面是一些Counter类的常用操作,来源于Python官方文档

(0)

相关推荐

  • 原来 collections 这么好用!!

    (给Python开发者加星标,提升Python技能) 来源: 南枝向暖北枝寒MA https://blog.csdn.net/mall_lucy/article/details/108822795 [ ...

  • 用这10个小技巧加速Python编程

    重磅干货,第一时间送达 >>> # Positive Indexing... numbers = [1, 2, 3, 4, 5, 6, 7, 8]... print("Fi ...

  • 第30天:Python collections 模块

    第30天:Python collections 模块

  • 【编程课堂】计数器 Counter

    上一期的编程课堂我们介绍了 有序字典 OrderedDict,这一期我们再来聊聊 同属 collections 模块的另一种数据类型 Counter. 在了解 Counter 之前,请大家思考一个问题 ...

  • Python 中交换变量的 3 种方法

    2021-10-16 使用临时变量 交换两个变量值的最简单方法是使用temp变量.该temp变量用来存储拳头变量的值(temp = a),允许你交换两个变量的值(a = b),然后分配的值temp到所 ...

  • Pandas中实现聚合统计,有几种方法?

    导读 这里首先给出模拟数据集,不妨给定包括如下两列的一个dataframe,需求是统计各国将领的人数.应该讲这是一个很基础的需求,旨在通过这一需求梳理pandas中分组聚合的几种通用方式. 01 va ...

  • 神奇的45° | 直角三角形中45°处理的40种方法

    作者:谢科安,解题大神 四川省达州市达川区永进乡中心学校 一题多解是指从不同角度,运用不同的思维方式来解答同一道题的思考方法, 本次分享一道多解的题型,这题目方法真是太多了,实在是找不出还有哪一道题的 ...

  • 老问题:Android子线程中更新UI的3种方法

    在Android项目中经常有碰到这样的问题,在子线程中完成耗时操作之后要更新UI,下面就自己经历的一些项目总结一下更新的方法: 方法一:用Handler 1.主线程中定义Handler: Handle ...

  • 股票交易中做好止损的三种方法——猎人带你玩股票

    股票交易中做好止损的三种方法——猎人带你玩股票

  • 删除Excel表格中多余空白行的4种方法,你会几个?

    表格中难免会出现了一些多余的空白行/空白列/空白单元格,怎样快速删除这些空白呢?至少有4种方法,看看你都会几个 一.排序法 1.行与行之间没有顺序 那么强烈推荐你重新给数据按照数值升序排列,排列之后所 ...

  • 直角三角形中45°处理的40种方法

    一题多解是指从不同角度,运用不同的思维方式来解答同一道题的思考方法, 这次一道多解的题型,题目方法真是太多了,实在是找不出还有哪一道题的方法比这题还多,部分方法.定理可能并不常见,借此可以熟悉熟悉,发 ...

  • 在工作和生活中提高热情的16种方法

    "热情是迄今为止薪资最高的品质,可能是因为它是最稀有的品质之一:但这是最具传染性的之一." 您可以在生活中使用更多的热情吗? 过着更加热情的生活的好处不能被夸大-- 您会更有信心. ...

  • 体育教学中有效纠错的五种方法

    小学生在学习某动作技能时,无论教师采取什么有效的预防措施,学生总会产生一些错误动作,如果不及时纠正就会形成错误的动力定型,直接影响正确技术的掌握与技能的提高,甚至会造成运动损伤.因此,教师在教学中应准 ...