在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))

您还可以使用诸如Loop Unrolling(https://zh.wikipedia.org/wiki/Loop_unrolling)之类的技术,该技术是循环转换技术,它以牺牲二进制大小为代价来尝试优化程序的执行速度,这种方法称为时空权衡。

使用诸如map,filter等的函数代替显式的for循环也可以提供一些性能改进。