为什么在比较2个元素时与使用if语句直接比较时max()函数这么慢?

Tyl*_*den 2 python max

通过运行以下代码,我获得了与if语句直接进行比较的速度,而if语句的速度几乎是使用max函数的4倍。

我试图了解其背后的原因。

比较:0.63s,最大:2.3s

import time

if _name_ == '_main_':
    sim = 10**7

    s = time.time()
    for _ in range(sim):
        if 1 > 2:
            pass
    res1 = time.time()-s

    s = time.time()
    for _ in range(sim):
        max(1, 2)
    res2 = time.time()-s

    print('comparison : {:.2}s, max : {:.2}s'.format(res1, res2))
Run Code Online (Sandbox Code Playgroud)

Jea*_*bre 5

因为max涉及对函数名称的字典查找,然后是函数调用,而直接<运算符则不。

max 当您有更多元素时,速度就开始变得有趣起来。

相关/相同速度差: