Python Counter Demo

2024-10-18

难度: 1

时长: 30 min

python collections 中的 Counter 怎么用?

collections.Counter 是 Python 的 collections 模块中的一个子类,它是一个字典子类,用于计数可哈希对象。它是一个集合,其中的元素存储为字典的键,它们的计数存储为字典的值。

以下是一些使用 Counter 的基本方法:

  1. 创建一个 Counter 对象: 你可以使用一个可迭代对象(如列表、元组、字符串等)来创建一个 Counter 对象。

    from collections import Counter
    
    # 使用列表创建 Counter
    c = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])
    print(c)  # 输出:Counter({'blue': 3, 'red': 2, 'green': 1})
    
  2. 更新计数: 你可以使用 update() 方法来更新计数。这个方法接受一个可迭代对象,并将其中的元素添加到计数中。

    c.update(['blue', 'yellow'])
    print(c)  # 输出:Counter({'blue': 4, 'red': 2, 'green': 1, 'yellow': 1})
    
  3. 获取最常见的元素: 使用 most_common() 方法可以获取出现次数最多的元素。这个方法返回一个列表,其中包含元组,每个元组包含一个元素及其计数。

    print(c.most_common(1))  # 输出:[('blue', 4)]
    
  4. 获取元素的计数: 你可以直接使用元素作为键来获取其计数。

    print(c['blue'])  # 输出:4
    
  5. 元素存在性检查: 使用 in 关键字可以检查某个元素是否存在于 Counter 中。

    print('blue' in c)  # 输出:True
    
  6. 计数的算术运算Counter 对象支持加法、减法、交集和并集等操作。

    c1 = Counter(['red', 'blue'])
    c2 = Counter(['blue', 'yellow'])
    c3 = c1 + c2  # 并集
    print(c3)  # 输出:Counter({'blue': 2, 'red': 1, 'yellow': 1})
    
    c4 = c1 - c2  # 差集
    print(c4)  # 输出:Counter({'red': 1})
    
  7. 清空计数: 使用 clear() 方法可以清空 Counter 对象。

    c.clear()
    print(c)  # 输出:Counter({})
    

Counter 是处理计数问题时非常有用的工具,它简化了许多常见的操作。