pythonシリーズに恋をする-pythonパフォーマンス(10):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