爱上python系列------python性能(十):bisect加速有序列表的查询

如果数据量很大的时候,list哪怕使用index也会变得很慢,下面做个实验,使用二分查找模块bisect

import  time
import bisect

index=1<<25#1<<25表示2^25
ls=[i for i  in  range(1<<28)]#1<<28表示2^28
start=time.time()
a1 = bisect.bisect(ls,index )
print('bisect spend time:',time.time()-start)
print(a1)
start=time.time()
a2 =ls.index(index)
print('index spend time:',time.time()-start)
print(a2)

运行结果:

bisect spend time: 5.078315734863281e-05
33554433
index spend time: 0.2695434093475342
33554432

结果也差距太大了,差几个数量级

猜你喜欢

转载自blog.csdn.net/zhou_438/article/details/109285272