当我改变
for i in range(0, 100):
rank = ranks[i]
if rank != 0:
pass
至:
for i in range(0, 100):
rank = ranks[i]
if rank:
pass
我发现第二个代码效率更高,为什么?
基准它,在我的情况下,ranks 是一个 numpy 整数数组。差别更大。
import numpy as np
import time
N = 1000000
ranks = np.random.random_integers(0, 10, N)
start = time.time()
for i in range(0, N):
rank = ranks[i]
if rank != 0:
pass
print time.time() - start
start = time.time()
for i in range(0, N):
rank = ranks[i]
if rank:
pass
print time.time() - start
start = time.time()
for i in range(0, N):
if i != 0:
pass
print time.time() - start
start = time.time()
for i in range(0, N):
if i:
pass
print time.time() - start
输出:
1.15917396545
0.45020198822
0.123136997223
0.122531175613