深入了解Python中计数器Counter的使用

 更新时间:2023年09月04日 11:02:57   作者:python收藏家  
计数器counter是包含在collections模块中的容器,这篇文章主要来和大家聊聊计数器counter的使用,感兴趣的小伙伴可以跟随小编一起学习一下

什么是容器Container

容器是容纳对象的对象。它们提供了一种访问所包含对象并对其进行迭代的方法。内置容器的例子有元组、列表和字典。其他内容包含在“collections”模块中。
Counter是dict的子类。因此,它是一个无序的集合,其中元素和它们各自的计数被存储为字典。这相当于一个包或多个其他语言集。

语法

class collections.Counter([iterable-or-mapping])

初始化

计数器的构造函数可以通过以下任一方式调用:

  • 包含一系列项目
  • 使用包含键和计数的字典
  • 带有将字符串名称映射到计数的关键字参数

初始化计数器

# A Python program to show different ways to create
# Counter
from collections import Counter
# With sequence of items
print(Counter(['B','B','A','B','C','A','B','B','A','C']))
# with dictionary
print(Counter({'A':3, 'B':5, 'C':2}))
# with keyword arguments
print(Counter(A=3, B=5, C=2))

输出

Counter({'B': 5, 'A': 3, 'C': 2})
Counter({'B': 5, 'A': 3, 'C': 2})
Counter({'B': 5, 'A': 3, 'C': 2})

计数器更新

我们也可以通过以下方式创建一个空计数器:

coun = collections.Counter()

并且可以通过update() 方法进行更新。相同的语法:

coun.update(Data)
# A Python program to demonstrate update()
from collections import Counter
coun = Counter()
coun.update([1, 2, 3, 1, 2, 1, 1, 2])
print(coun)
coun.update([1, 2, 4])
print(coun)

输出

Counter({1: 4, 2: 3, 3: 1})
Counter({1: 5, 2: 4, 3: 1, 4: 1}

数据可以用初始化中提到的三种方式中的任何一种提供,计数器的数据将增加而不是替换。计数也可以为零或负数。

# Python program to demonstrate that counts in
# Counter can be 0 and negative
from collections import Counter
c1 = Counter(A=4,  B=3, C=10)
c2 = Counter(A=10, B=3, C=4)
c1.subtract(c2)
print(c1)

输出

 Counter({'c': 6, 'B': 0, 'A': -6})

列表中的唯一计数

我们可以使用Counter来计算列表或其他集合中的不同元素。

# An example program where different list items are
# counted using counter
from collections import Counter
# Create a list
z = ['blue', 'red', 'blue', 'yellow', 'blue', 'red']
# Count distinct elements and print Counter aobject
print(Counter(z))

输出

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

打印计数器值

我们还可以使用keys() 、values() 和items() 方法访问计数器的所有键和值。这些方法分别返回计数器中的键、值和键值对的视图。

from collections import Counter
my_counter = Counter('abracadabra')
print(my_counter.keys())
print(my_counter.values())
print(my_counter.items())

输出

dict_keys(['a', 'b', 'r', 'c', 'd'])
dict_values([5, 2, 2, 1, 1])
dict_items([('a', 5), ('b', 2), ('r', 2), ('c', 1), ('d', 1)])

访问计数器

一旦初始化,计数器就像字典一样被访问。此外,它不会引发KeyValue错误(如果key不存在),而是值的计数显示为0。

# Python program to demonstrate accessing of
# Counter elements
from collections import Counter
# Create a list
z = ['blue', 'red', 'blue', 'yellow', 'blue', 'red']
col_count = Counter(z)
print(col_count)
col = ['blue','red','yellow','green']
# Here green is not in col_count
# so count of green will be zero
for color in col:
	print (color, col_count[color])

输出

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

elements()

elements() 方法返回一个迭代器,该迭代器生成Counter已知的所有项。

注意:不包括count <= 0的元素。

# Python example to demonstrate elements() on
# Counter (gives back list)
from collections import Counter
coun = Counter(a=1, b=2, c=3)
print(coun)
print(list(coun.elements()))

输出

Counter({'c': 3, 'b': 2, 'a': 1})
['a', 'b', 'b', 'c', 'c', 'c']

most_common()

most_common() 用于产生N个最频繁遇到的输入值及其相应计数的序列。

# Python example to demonstrate most_elements() on
# Counter
from collections import Counter
coun = Counter(a=1, b=2, c=3, d=120, e=1, f=219)
# This prints 3 most frequent characters
for letter, count in coun.most_common(3):
	print('%s: %d' % (letter, count))

输出

f: 219
d: 120
c: 3

到此这篇关于深入了解Python中计数器Counter的使用的文章就介绍到这了,更多相关python计数器counter内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中构建终端应用界面利器Blessed模块的使用

    Python中构建终端应用界面利器Blessed模块的使用

    Blessed 库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高效的吧
    2025-01-01
  • python计算圆周率pi的方法

    python计算圆周率pi的方法

    这篇文章主要介绍了python计算圆周率pi的方法,涉及Python针对数学运算的相关技巧,需要的朋友可以参考下
    2015-07-07
  • 自动化测试Pytest单元测试框架的基本介绍

    自动化测试Pytest单元测试框架的基本介绍

    这篇文章主要介绍了Pytest单元测试框架的基本介绍,包含了Pytest的概念,Pytest特点,其安装流程步骤以及相关配置流程,有需要的朋友可以参考下
    2021-08-08
  • Python绘图Turtle库的安装问题解决

    Python绘图Turtle库的安装问题解决

    这篇文章主要介绍了Python绘图中解决Turtle的安装问题示例分析,也遇到过相同问题的同学可以借鉴参考下,希望能够解决你的问题
    2021-10-10
  • Python实现检索指定网段内所有的数据库服务器

    Python实现检索指定网段内所有的数据库服务器

    这篇文章主要为大家详细介绍了如何使用Python实现检索指定网段内所有的数据库服务器,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2025-02-02
  • python opencv检测目标颜色的实例讲解

    python opencv检测目标颜色的实例讲解

    下面小编就为大家分享一篇python opencv检测目标颜色的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现

    tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现

    今天小编就为大家分享一篇tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python colorama 彩色打印实现代码

    Python colorama 彩色打印实现代码

    这篇文章主要介绍了Python colorama 彩色打印实现代码,将介绍的类为Back, 它实现了与 Fore 类相同的九个关键字:BLACK、RED、GREEN、YELLOW、BLUE、MAGENTA、CYAN、WHITE、RESET,感兴趣的朋友一起看看吧
    2022-04-04
  • selenium学习教程之定位以及切换frame(iframe)

    selenium学习教程之定位以及切换frame(iframe)

    这篇文章主要给大家介绍了关于selenium学习教程之定位以及切换frame(iframe)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Python中NumPy的线性代数子模块linalg详解

    Python中NumPy的线性代数子模块linalg详解

    这篇文章主要介绍了Python中NumPy的线性代数子模块linalg详解,NumPy 的线性代数子模块linalg提供了 20 余个函数,用于求解行列式、逆矩阵、特征值、特征向量,以及矩阵分解等,需要的朋友可以参考下
    2023-08-08

最新评论