欢迎访问宙启技术站
智能推送

Python中collections模块中Counter类的__init__()函数详细说明

发布时间:2023-12-27 15:44:19

Counter类是Python collections模块中的一个类,它是一个简单的计数器,用于统计一个可迭代对象中各元素的数量。Counter类的__init__()函数用于初始化一个Counter对象,可以接受多种不同的参数形式。

Counter类的__init__()函数有以下几种用法:

1. 初始化一个Counter对象, 不传入参数

如果不传入参数,Counter对象将被初始化为空,即没有任何元素计数器为0。

示例代码:

   from collections import Counter

   c = Counter()
   print(c)  # Counter()
   

2. 初始化一个Counter对象, 传入一个可迭代对象

如果传入一个可迭代对象,Counter对象将统计可迭代对象中每个元素的数量。

示例代码:

   from collections import Counter

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

3. 初始化一个Counter对象, 传入关键字参数

传入关键字参数时,Counter对象将统计关键字参数中每个键的数量。

示例代码:

   from collections import Counter

   c = Counter(a=2, b=3, c=1)
   print(c)  # Counter({'b': 3, 'a': 2, 'c': 1})
   

4. 初始化一个Counter对象, 传入一个字典对象

如果传入一个字典对象,Counter对象将统计字典对象中每个键的数量。

示例代码:

   from collections import Counter

   c = Counter({'a': 2, 'b': 3, 'c': 1})
   print(c)  # Counter({'b': 3, 'a': 2, 'c': 1})
   

需要注意的是,当向Counter对象传入一个可迭代对象或字典对象时,可迭代对象或字典对象中的元素必须是可哈希的(即不可变的),否则将会抛出TypeError异常。

__init__()函数还可以接受其他参数,用于设置Counter对象的属性。例如,可以使用__init__(iterable, **kwds)来设置Counter对象的内容和属性。

示例代码:

from collections import Counter

c = Counter(a=2, b=3, c=1, d=4)
print(c)  # Counter({'d': 4, 'b': 3, 'a': 2, 'c': 1})

上述代码将会初始化一个Counter对象,包含键值对('a', 2), ('b', 3), ('c', 1), ('d', 4)。其中d的计数为4。

总结:Counter类的__init__()函数用于初始化一个Counter对象,可以接受多种不同的参数形式,例如:不传入参数,传入一个可迭代对象,传入关键字参数,传入一个字典对象。除此之外,还可以传入其他参数,用于设置Counter对象的属性。