如何使用 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 循环也能带来一些性能改进。
广告