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

Python数据分析——列表性能测试

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

Python数据分析——列表性能测试

首先准备了常用的四种方法

from timeit import Timer #导入timeit模块对函数计时间

#列表连接
def test1():
    l=[]
    for i in range(10000):
        l+=[i]

#追加列表        
def test2():
    l=[]
    for i in range(10000):
        l.append(i)

#列表推导式        
def test3():
    l=[i for i in range(10000)]

#列表构造器调用range函数   
def test4():
    l=list(range(10000))
    
t1=Timer("test1()","from __main__ import test1")
print("concat",t1.timeit(number=1000),"milliseconds")

t2=Timer("test2()","from __main__ import test2")
print("append",t2.timeit(number=1000),"milliseconds")

t3=Timer("test3()","from __main__ import test3")
print("comprehension",t3.timeit(number=1000),"milliseconds")

t4=Timer("test4()","from __main__ import test4")
print("list range",t4.timeit(number=1000),"milliseconds")

要使用timeit模块,首先创建一个Timer对象,其参数是两条Python语句。第一个参数是要为之计时的Python语句;第2个参数是建立测试的语句。

默认情况下,timeit会执行100w次,所以我将number改为1000,执行1000次。

from __main__ import test1:将test1函数从__main__命名空间导入到timeit设置计时的命名空间。

【测试结果】

concat 0.8962324941530824 milliseconds
append 0.7805408949498087 milliseconds
comprehension 0.386639310978353 milliseconds
list range 0.22361602704040706 milliseconds

可以观察到列表连接(concat)最慢,list range最快

列表推导式速度是append两倍的样子

【列表操作常用的大O效率】 

 

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

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

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