如何使用 Python 让 loop 运行地更快?


这个问题与语言无关。几乎每种语言中都有 loop,并且到处都遵循相同的原则。你需要意识到,在进行 loop 优化时,编译器会完成最繁重的工作,但是作为一名程序员,你也需要保持 loop 的优化。

重要的是认识到,你放置在 loop 中的所有内容都会对每个 loop 迭代执行。优化 loop 的关键是最大程度地减少它们所做的事情。即使看起来非常快的操作,如果重复多次,也会花费很长时间。完成一项耗时 1 微秒的操作一百万次将需要 1 秒钟才能完成。

不要在 loop 中执行诸如 len(list) 的操作,甚至不要在它的起始条件中执行。

示例

a = [i for i in range(1000000)]
length = len(a)
for i in a:
   print(i - length)

比快得多

a = [i for i in range(1000000)]
for i in a:
   print(i - len(a))

你还可以使用 loop 展开(https://en.wikipedia.org/wiki/Loop_unrolling)等技术,这是一种循环变换技术,试图以牺牲二进制文件大小为代价来优化程序的执行速度,这是一种被称为时空权衡的方法。

使用映射、筛选等功能,而不是显式的 for 循环也能带来一些性能改进。

更新于:2020-03-05

889 次浏览

开启你的职业生涯

完成教程获得认证

开始学习
广告