• python之计数统计


    前言

    计数统计,简单的说就是统计某一项出现的次数。实际应用中很多需求都需要用到这个模型,如检测样本中某一值出现的次数、日志分析某一消息出现的频率、分析文件中相同字符串出现的概率等等。以下是实现的不同方式。

    实现方式:

    • 使用dict
     1 >>> data = ['a','2',2,4,5,'2','b',4,7,'a',5,'d','a','z']
     2 >>> count_1 = dict()
     3 >>> for item in data:
     4 ...     if item in count_1:
     5 ...             count_1[item] +=1
     6 ...     else:
     7 ...             count_1[item] = 1
     8 ...
     9 >>> print count_1
    10 {'a': 3, 2: 1, 'b': 1, 4: 2, 5: 2, 7: 1, '2': 2, 'z': 1, 'd': 1}
    • 使用set和list
    1 >>> data
    2 ['a', '2', 2, 4, 5, '2', 'b', 4, 7, 'a', 5, 'd', 'a', 'z']
    3 >>> count_set = set(data)
    4 >>> count_list = []
    5 >>> for item in count_set:
    6 ...     count_list.append({item:data.count(item)})
    7 ...
    8 >>> print count_list
    9 [{'a': 3}, {2: 1}, {'b': 1}, {4: 2}, {5: 2}, {7: 1}, {'2': 2}, {'z': 1}, {'d': 1}]
    • 使用collections.Counter
     1 >>> data
     2 ['a', '2', 2, 4, 5, '2', 'b', 4, 7, 'a', 5, 'd', 'a', 'z']
     3 >>> from collections import Counter
     4 >>> print Counter(data)
     5 Counter({'a': 3, 4: 2, 5: 2, '2': 2, 2: 1, 'b': 1, 7: 1, 'z': 1, 'd': 1})
     6 >>>
     7 >>> list(Counter(data).elements())  #使用elements()方法获取Counter中的key值
     8 ['a', 'a', 'a', 2, 'b', 4, 4, 5, 5, 7, '2', '2', 'z', 'd']
     9 >>>
    10 >>> Counter(data).most_common(2)  #使用most_common()方法可以找出前N个出现频率最高的元素以及它们对应的次数
    11 [('a', 3), (4, 2)]
    12 >>>
    13 >>> (Counter(data))['y']  #当访问不存在的元素时,默认返回为0而不是抛出KeyError异常
    14 0

    Counter其他方法:

     1 >>> c=Counter("success")
     2 >>> print c
     3 Counter({'s': 3, 'c': 2, 'e': 1, 'u': 1})
     4 >>>
     5 >>> c.update("successful")  #update()方法用于被统计对象元素的更新,原有Counter计数器对象与新增元素的统计计数值相加
     6 >>> print c
     7 Counter({'s': 6, 'c': 4, 'u': 3, 'e': 2, 'f': 1, 'l': 1})
     8 >>>
     9 >>> c.subtract("successful")  #subtract()方法用于实现计数器对象中元素统计值相减,输入和输出的统计值允许为0或者负数
    10 >>> print c
    11 Counter({'s': 3, 'c': 2, 'e': 1, 'u': 1, 'f': 0, 'l': 0})
  • 相关阅读:
    Maven的安装、配置及使用入门+maven安装报错:JAVA_HOME【申明:来源于网络】
    Android总结之json解析(FastJson Gson 对比)[申明:来源于网络]
    JSON.stringify 语法实例讲解+easyui data-options属性+expires【申明:来源于网络】
    第一次的博客(写一点关于今天的数据库学习吧)
    WPF 捕捉全局异常
    C#跨线程操作UI
    C#通过盘符获取剩余空间
    C#字符串转UNICODE
    C#生成随机数
    Core引用Jquery文件
  • 原文地址:https://www.cnblogs.com/sunshine-blog/p/9339894.html
Copyright © 2020-2023  润新知