代わりのリストを反転させます、最初の試合の早い段階で、リスト全体を逆転させるのに時間を節約できます。
もちろん、以下の最良の場合と両方の方法のための最悪の場合、あなたのアイデアを与える可能性があり(例えば、最後、最初、または中央に向かって)マッチがリストに含まれている場所に基づいて、あります
In [1]: l = range(0, 100000)
In [2]: %timeit next((i for i in reversed(l) if i == 1), None)
100 loops, best of 3: 2.94 ms per loop
In [3]: %timeit next((i for i in reversed(l) if i == 50000), None)
1000 loops, best of 3: 1.39 ms per loop
In [4]: %timeit next((i for i in reversed(l) if i == 99000), None)
10000 loops, best of 3: 29.4 µs per loop
以下
は、それが同じリストを逆転するのにかかるどのくらいの考えである:
In [5]: %timeit l.reverse()
10000 loops, best of 3: 71.5 µs per loop
注:私は、Python 2に上記走ったので、range()
がリストではありません反復子ではありませんので、に必要それは価値のある比較をするためです。
もしあなたがnumpyを使いたいなら、 'np.where(np.array(my_list)== criteria_value)[0] [ - 1]' –