我是靠谱客的博主 含糊羊,最近开发中收集的这篇文章主要介绍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类对字符串、列表、字典的数据元素进行计数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复