Python编程:集合工具类之计数器(Counter)详解与实践

网站建设3年前发布
26 0 0

本文继续来盘Python内置集合模块,这期主要介绍其中的工具类计数器类(Counter)类的使用。我们还是采用“短平快”的模式——文字+代码,助你多快好省的学会它,并能都收用上它。闲话少叙,开始正文——,Counter是一个dict子类,用于计数可哈希对象。它是一个集合,其中元素被存储为字典键,它们的计数值被存储为字典值。计数值可为任何整数值,包括零或负计数。Counter类类似于其他语言中的包或多集。,计数的元素来自可迭代对象或另一个初始化的映射(或计数器)。下面是Python中创建Counter对象的一些方式。请看示例代码:,程序运行结果如下所示:,Counter对象有一个字典接口,只是它们会为丢失的项返回一个零计数,而不是引发KeyError,示例如下:,输出结果如下:,要从Counter中删除元素,可以使用del关键字。请记住,将计数设置为零并不会从计数器中删除一个元素。请看示例代码:,输出结果为:,如代码所示,我们将0设置为计数器中不存在的项。Python将该项以零值添加到Counter中。在第7行中,我们使用del关键字完全删除该项。很明显,计数为0,并不会删除Counter中的计数项,而要删除之,得用del命令才行。,Counter对象除了支持所有字典可用的方法之外,以下是其特有最常见方法:返回一个迭,1)elements():,返回迭代器,其为重复相应元素次数与其计数值相等的迭代器。按第一次遇到的顺序返回元素。如果一个元素的计数小于1,elements()将忽略它。示例如下:,输出结果为:,2)most_common([n]):,返回n个最常见元素的列表,元素的计数大小从最大到最小。如果省略n或None, most_common()将返回计数器中的所有元素。计数相等的元素按第一次遇到的顺序排列:,输出结果为:,3)subtract([iterable-or-mapping]):,从可迭代对象或另一个映射(或计数器)中减去元素。像dict.update(),但是减去计数而不是替换它们。输入和输出都可能是零或负的。示例如下:,输出结果如下:,4)两个方法,通常的字典方法可用于Counter对象,但有两个方法针对计数器的工作方式不同:,fromkeys(iterable):,这个类方法Counter对象没实现。,update([iterable-or-mapping]):,从可迭代对象中计数元素,或从另一个映射(或计数器)中添加元素。类似dict.update(),但Counter是增加计数而不是替换它们。而且,迭代对象应该是元素序列,而不是(键,值)对的序列。示例如下:,请注意下面的输出结果:,1.1.1 数学式操作,Counter提供了几种数学操作来组合Counter对象运算,以生成多集(计数大于零的计数器)。加减法通过加减相应元素的计数来合并计数器。交集和并集返回对应计数的最小值和最大值。每个操作都可以接受带符号计数值的输入,但输出将排除计数为零或更少的结果。,输出结果类似如下:,一元加减法是与空计数器相加或与空计数器相减的快捷方式。示例如下:,输出结果如下:,简而言之,可利用Counter对象实现一些相关数据的统计分析。,本篇文章主要介绍了Python内置集合模块的工具类Counter的使用,并结合代码和描述,以期深入浅出的帮助你更好的理解和掌握Counter相关内容和应用。若是初学者,记得一定要动手实践一把才是最佳学习模式。

© 版权声明

相关文章