データ量が多いと、インデックスを使用してもリストが非常に遅くなります。実験して、バイナリ検索モジュールのバイセクトを使用してみましょう。
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
結果は大きすぎ、数桁