如何使用Python使循环运行更快?
这是一个语言无关的问题。几乎每种语言都有循环,同样的原则也适用于各种语言。你需要认识到,编译器在循环优化方面做了大部分的重活,但是作为一个程序员,你也需要优化你的循环。
重要的是要认识到,所有放在循环里的东西都会在每次循环迭代时被执行。优化循环的关键是尽量减少其执行的操作。即使看起来非常快的操作,如果重复执行很多次,也会花费很长时间。执行一次需要1微秒的操作,如果执行一百万次,需要1秒钟才能完成。
在循环中不要执行像len(list)这样的操作,甚至不要在循环的起始条件中执行它。
阅读更多:Python 教程
例子
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 Unrolling(https://en.wikipedia.org/wiki/Loop_unrolling)这样的技术,Loop Unrolling是一个循环转换技术,旨在优化程序的执行速度,以时间和空间的平衡为代价。
使用像map、filter等函数而不是for循环可以提供一些性能改进。
极客教程