如何使用 Python 让循环跑得更快?
这是一个与语言无关的问题。几乎每种语言中都有循环,并且相同的原则普遍适用。你需要意识到,在循环优化方面,编译器会完成大部分繁重的工作,但作为一名程序员,你也需要使循环得到优化。
认识到每次循环迭代都会执行放入循环中的所有内容非常重要。优化循环的关键是将它们所做的内容最小化。即使表面上看起来非常快速的运算,如果重复多次,也会花费很长时间。执行一次需要 1 微秒的运算,一百万次将花费 1 秒才能完成。
不要在循环中或甚至在循环的起始条件中执行类似 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))
你还可以使用诸如循环展开 (https://en.wikipedia.org/wiki/Loop_unrolling) 的技术,这是一种循环转换技术,试图以牺牲二进制大小为代价优化程序的执行速度,这种方法称为空间时间权衡。
使用诸如 map、filter 等函数来替代明确的 for 循环,也可以提供一些性能提升。
广告