说下结论,虽然直接用int强转的写法比较简洁,但是用if-else的效率更高(规避了函数调用的开销)。
举个栗子:
lst = [True, False]
def a(a=100000):
start=time.time()
for i in xrange(a):
lst[0 if random.choice(lst) else 1]
print(time.time()-start) # 执行结果:0.039999961853
def b(b=100000):
start=time.time()
for i in xrange(b):
lst[int(random.choice(lst))]
print(time.time()-start) # 执行结果:0.0490000247955
字节码: