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循环也可以提高一些性能。

更新于:2020年3月5日

623 次浏览

启动你的职业生涯

通过完成课程获得认证

开始
广告