📜  Python中的计数器 |设置 1(初始化和更新)

📅  最后修改于: 2022-05-13 01:54:36.126000             🧑  作者: Mango

Python中的计数器 |设置 1(初始化和更新)

Counter是集合模块中包含的容器。现在大家一定想知道什么是容器。先别着急,让我们讨论一下容器。

什么是容器?

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

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

初始化:
可以通过以下任何一种方式调用 counter 的构造函数:

  • 有项目序列

  • 使用包含键和计数的字典

  • 使用关键字参数将字符串名称映射到计数

每种类型的初始化示例:

Python3
# 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))


Python3
# 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)


Python3
# 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)


Python3
# 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({'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)

Python3

# 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})

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

Python3

# 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 来计算列表或其他集合的不同元素。

Python3

# 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})