栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【源码共读】Python 标准模块 collections 中 Counter 类详解

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【源码共读】Python 标准模块 collections 中 Counter 类详解

文章目录
    • 1. 简介
    • 2. 使用
    • 3. 分析

1. 简介

Python 标准模块 collections 中的类 Counter 是字典类 dict 的一个子类,该类一般用于对可哈希对象进行计数,有时也被称为多重集合。在 Counter 类的对象中,数据存储方式为:可哈希对象作为键,而可哈希对象的计数作为值进行存储。

2. 使用
  1. 创建 Counter 对象:

    >>> from collections import Counter
    >>> c = Counter('abcdeabcdabcaba')
    
  2. 获得出现频率最高的元素:

    >>> c.most_common(3)
    [('a', 5), ('b', 4), ('c', 3)]
    
  3. 列出所有的键:

    >>> sorted(c)  
    ['a', 'b', 'c', 'd', 'e']
    
  4. 列出所有元素:

    >>> ''.join(sorted(c.elements()))
    'aaaaabbbbcccdde'
    
  5. 计算所有键的频率和:

    >>> sum(c.values())
    15
    
  6. 获得某可哈希对象的计数:

    >>> c['a']
    5
    
  7. 根据可迭代对象更新计数:

    >>> for elem in 'shazam':
    ...    c[elem] += 1
        
    >>> c['a'] 
    7
    
  8. 删除某可迭代对象:

    >>> del c['b'] 
    >>> c['b']  
    0
    
  9. 合并两个 Counter 对象:

    >>> d = Counter('simsalabim') 
    >>> c.update(d) 
    >>> c['a']  
    9
    >>> c['i']
    2
    
  10. 清空 Counter 对象:

    >>> c.clear()
    >>> c['a']
    0
    
  11. 需要特别注意的是,当某可哈希对象的计数被设为 0 0 0 或减至 0 0 0 后,该对象将仍然保存在 Counter 对象中直到该对象被删除或 Counter 对象本身被清空:

    >>> c = Counter('aaabbc')
    >>> c['b'] -= 2 
    >>> c.most_common()   
    [('a', 3), ('c', 1), ('b', 0)]
    >>> del c['b']
    >>> c.most_common()   
    [('a', 3), ('c', 1)]
    

关于 Counter 对象的其他详细使用,请见 https://www.demo2s.com/python/python-collections-counter.html 。

3. 分析
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/499114.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号