文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python数据结构与算法(3)

2023-01-31 07:26

关注

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  Timer
timer1  =   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)

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯