博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python数据结构与算法(3)
阅读量:6696 次
发布时间:2019-06-25

本文共 1975 字,大约阅读时间需要 6 分钟。

Python内置类型性能分析 timeit模块

timeit模块可以⽤来测试⼀⼩段Python代码的执⾏速度。
class timeit.Timer(stmt='pass', setup='pass', timer=<timer function>)
Timer是测量⼩段代码执⾏速度的类。
stmt参数是要测试的代码语句(statment);
setup参数是运⾏代码时需要的设置;
timer参数是⼀个定时器函数,与平台有关。
timeit.Timer.timeit(number=1000000)
Timer类中测试语句执⾏速度的对象⽅法。number参数是测试代码时的测试 次数,默认为1000000次。⽅法返回执⾏代码的平均耗时,⼀个float类型的 秒数。
list的操作测试

def t1():           l   =   []          for i   in  range(1000):                        l   =   l   +   [i] def t2():           l   =   []          for i   in  range(1000):                        l.append(i) def t3():
l   =   [i  for i   in  range(1000)] def    t4():           l   =   list(range(1000))from    timeit  import  Timertimer1  =   Timer("t1()",   "from   __main__    import  t1") print("concat  ",timer1.timeit(number=1000),   "seconds") timer2   =   Timer("t2()",   "from   __main__    import  t2") print("append  ",timer2.timeit(number=1000),   "seconds") timer3   =   Timer("t3()",   "from   __main__    import  t3") print("comprehension   ",timer3.timeit(number=1000),   "seconds") timer4   =   Timer("t4()",   "from   __main__    import  t4") print("list    range   ",timer4.timeit(number=1000),   "seconds")#   ('concat    ',  1.7890608310699463, 'seconds') #    ('append    ',  0.13796091079711914,    'seconds') #    ('comprehension ',  0.05671119689941406,    'seconds') #    ('list  range   ',  0.014147043228149414,   'seconds')

pop操作测试

x   =   range(2000000) pop_zero =   Timer("x.pop(0)","from  __main__    import  x") print("pop_zero ",pop_zero.timeit(number=1000), "seconds") x    =   range(2000000) pop_end  =   Timer("x.pop()","from   __main__    import  x") print("pop_end  ",pop_end.timeit(number=1000),  "seconds")#   ('pop_zero  ',  1.9101738929748535, 'seconds') #    ('pop_end   ',  0.00023603439331054688, 'seconds')

测试pop操作:从结果可以看出,pop最后⼀个元素的效率远远⾼于pop第⼀ 个元素

可以⾃⾏尝试下list的append(value)和insert(0,value),即⼀个后⾯插⼊ 和⼀个前⾯插⼊???

list内置操作的时间复杂度

python数据结构与算法(3)

dict内置操作的时间复杂度

python数据结构与算法(3)

转载于:https://blog.51cto.com/13517854/2322688

你可能感兴趣的文章
JSON对象转换成Byte(字节)数组
查看>>
iOS 模拟器卸载
查看>>
yml 配置语法
查看>>
php parse_url()函数
查看>>
如何通过ad收集计算机硬件信息
查看>>
如何通过ad组策略让domain users用户可以远程桌面?
查看>>
[置顶] jquery实现回旋滚动效果
查看>>
Linux学习日记(一)
查看>>
线程池的使用
查看>>
vb的winio模拟键盘鼠标部分参考代码
查看>>
cdn加速之后 web日志ip全部变为cdn节点ip解决办法
查看>>
Linux的文件系统、系统管理类命令、bash基础特性
查看>>
插入排序(黄柳淞)
查看>>
华为网络设备上常用的安全技术(二)
查看>>
等待多个并发事件完成的模型
查看>>
如何使用 PyCharm+Docker 打造深度学习利器
查看>>
EMC RecoverPoint部署的简要笔记
查看>>
我的友情链接
查看>>
Java多线程
查看>>
nodejs 安装mysql、socket.io 插件
查看>>