Python 性能:While 与 For 循环

Yaz*_*dan -2 python

有人告诉我,while循环通常比for循环快。

这是真的吗?如果是,那是为什么?

ber*_*eal 7

试一试吧:

def f():
    for i in range(100000):
        ...

def g():
    i = 0
    while i < 100000:
        i += 1

>>> %timeit f()
2.29 ms ± 69 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

>>> %timeit g()
5.77 ms ± 26.4 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
Run Code Online (Sandbox Code Playgroud)

捣毁。但是,严肃地说,由于以下原因,这种比较都没有多大意义:

  1. 虽然您可以将任何for-loop实现为while-loop,但该新循环将有额外的代码来匹配功能
  2. whilefor服务于不同目的和比较它们就像是与桔子比较苹果
  3. 它是 Python,这里没有人真正关心纳秒。
  4. 之间的选择forwhile极不可能成为性能瓶颈。