如何使用 Python 让循环运行得更快?
pythonprogrammingserver side programming
这是一个与语言无关的问题。几乎每种语言都有循环,相同的原则适用于任何地方。您需要意识到,在循环优化方面,编译器承担了大部分繁重的工作,但作为程序员,您也需要保持循环的优化。
重要的是要意识到,您在循环中放入的所有内容都会在每次循环迭代中执行。优化循环的关键是尽量减少它们所做的事情。即使是看起来非常快的操作,如果重复多次,也会花费很长时间。执行一百万次需要 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 循环也可以提供一些性能改进。