Python中优化列表和字典
Python中优化列表和字典,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
天宁网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。创新互联建站于2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站。
在循环内
代码:
@timeit def append_inside_loop(limit): nums = [] for num in limit: nums.append(num) append_inside_loop(list(range(1, 9999999)))
在上面的函数中.append每次通过循环重新计算的函数引用。执行后,上述函数所花费的总时间:
o/p - function - append_inside_loop, took 529 ms to complete
在循环外
代码:
@timeit def append_outside_loop(limit): nums = [] append = nums.append for num in limit: append(num) append_outside_loop(list(range(1, 9999999)))
在上面的函数中,我们对nums.append在循环外部估值,并在循环内部使用append为变量。总时间:
o/p - function - append_outside_loop, took 328 ms to complete
如您所见,当我们在for循环外部追加为一个本地变量,这将花费更少的时间,可以将代码加速201 ms。
避免在字典中重新求值
在循环内部
代码:
@timeit def inside_evaluation(limit): data = {} for num in limit: data[num] = data.get(num, 0) + 1 inside_evaluation(list(range(1, 9999999)))
上述函数所花费的总时间:
o/p - function - inside_evaluation, took 1400 ms to complete
在循环外
代码:
@timeit def outside_evaluation(limit): data = {} get = data.get for num in limit: data[num] = get(num, 0) + 1 outside_evaluation(list(range(1, 9999999)))
上述函数所花费的总时间:
o/p - function - outside_evaluation, took 1189 ms to complete
看完上述内容,你们掌握Python中优化列表和字典的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
网页题目:Python中优化列表和字典
URL标题:http://scyanting.com/article/gpsgdh.html