首页 > 解决方案 > Python 性能:While 与 For 循环

问题描述

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

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

标签: python

解决方案


试一试吧:

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)

破获。但是,严肃地说,由于以下原因,这样的比较都没有多大意义:

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

推荐阅读