分享5个python提速技巧,速度瞬间提上来了
这篇文章主要给大家分享的是5个python提速技巧,工作或者学习的过程中难免会遇到卡顿问题,下面的提速技巧具有一定的参考价值,需要的小伙伴可以参考一下
目录
1、跳过迭代对象的开头
2、避免数据复制
3、避免变量中间变量
4、循环优化
5、使用numba.jit
1、跳过迭代对象的开头
1 2 3 4 5 6 7 8 9 10 | string_from_file = """ // Wooden: ... // LaoLi: ... // // Whole: ... Wooden LaoLi... """ import itertools for line in itertools.dropwhile( lambda line: line.startswith( "//" ), string_from_file.split( " " )): print (line) |
2、避免数据复制
1 2 3 4 5 6 7 8 9 | # 不推荐写法,代码耗时:6.5秒 def main(): size = 10000 for _ in range (size): value = range (size) value_list = [x for x in value] square_list = [x * x for x in value_list] main() |
1 2 3 4 5 6 | # 推荐写法,代码耗时:4.8秒 def main(): size = 10000 for _ in range (size): value = range (size) square_list = [x * x for x in value] # 避免无意义的复制 |
3、避免变量中间变量
1 2 3 4 5 6 7 8 9 10 11 | # 不推荐写法,代码耗时:0.07秒 def main(): size = 1000000 for _ in range (size): a = 3 b = 5 temp = a a = b b = temp main() |
1 2 3 4 5 6 7 8 9 | # 推荐写法,代码耗时:0.06秒 def main(): size = 1000000 for _ in range (size): a = 3 b = 5 a, b = b, a # 不借助中间变量 main() |
4、循环优化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # 不推荐写法。代码耗时:6.7秒 def computeSum(size: int ) - > int : sum_ = 0 i = 0 while i < size: sum_ + = i i + = 1 return sum_ def main(): size = 10000 for _ in range (size): sum_ = computeSum(size) main() |
1 2 3 4 5 6 7 8 9 10 11 12 13 | # 推荐写法。代码耗时:4.3秒 def computeSum(size: int ) - > int : sum_ = 0 for i in range (size): # for 循环代替 while 循环 sum_ + = i return sum_ def main(): size = 10000 for _ in range (size): sum_ = computeSum(size) main() |
隐式for循环代替显式for循环
1 2 3 4 5 6 7 8 9 10 | # 推荐写法。代码耗时:1.7秒 def computeSum(size: int ) - > int : return sum ( range (size)) # 隐式 for 循环代替显式 for 循环 def main(): size = 10000 for _ in range (size): sum = computeSum(size) main() |
5、使用numba.jit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # 推荐写法。代码耗时:0.62秒 # numba可以将 Python 函数 JIT 编译为机器码执行,大大提高代码运行速度。 import numba @numba .jit def computeSum(size: float ) - > int : sum = 0 for i in range (size): sum + = i return sum def main(): size = 10000 for _ in range (size): sum = computeSum(size) main() |
到此这篇关于分享5个python提速技巧,速度瞬间提上来了的文章就介绍到这了
原文链接:https://jiangongfang.blog.csdn.net/article/details/122060897