我是靠谱客的博主 含糊羊,最近开发中收集的这篇文章主要介绍Python使用collections的Counter类对字符串、列表、字典的数据元素进行计数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#coding:utf8
__author__ = 'libingxian'
__date = "20170416"

import random
import time

"""
最近碰到一个需求,对数据出现的次数进行统计
"""

# 原始方法1:一开始使用比较笨的方法,把原始数据存入列表,然后循环遍历,效率较低,耗时较长
def countFunc1(list1):
    se = set(list1) # 去重,找出种子元素
    #print se
    dict1 = {}
    t1 = time.time()
    for i in se:
        count = 0 # 为每个数据创建一个计数器
        for j in list1: # 遍历原始数据
            if i == j:
                count += 1
        dict1[i] = count
    t2 = time.time()
    print "countFunc1 耗时:",t2 - t1
    # print dict1
    return dict1

# 方法2:使用python内置的集合模块,它提供了许多有用的集合类,其中有个Counter类,它默认对传入的数据元素进行计数,执行效率高
def countFunc2(list1):
    import collections
    t1 = time.time()
    listTmp = collections.Counter(list1)
    t2 = time.time()
    print "countFunc2 耗时:",t2 - t1
    # print listTmp
    return listTmp

# 制造测试数据
list1 = []
for i in range(100000):
    list1.append(random.randint(0,200))

countFunc1(list1)
countFunc2(list1)

"""
运行结果:
countFunc1 耗时: 0.656000137329
countFunc2 耗时: 0.0349998474121

方法2比方法1执行效率大大提升了 ~O(∩_∩)O~
"""




附上collections中Counter类初始化的说明:

最后

以上就是含糊羊为你收集整理的Python使用collections的Counter类对字符串、列表、字典的数据元素进行计数的全部内容,希望文章能够帮你解决Python使用collections的Counter类对字符串、列表、字典的数据元素进行计数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部