Sim, uma pesquisa binária geralmente será mais rápida. Não, a biblioteca padrão index
function não tem opção para isso.
Outra resposta tem código para uma pesquisa binária:
from bisect import bisect_left
def binary_search(a, x, lo=0, hi=None): # can't use a to specify default for hi
hi = hi if hi is not None else len(a) # hi defaults to len(a)
pos = bisect_left(a,x,lo,hi) # find insertion position
return (pos if pos != hi and a[pos] == x else -1) # don't walk off the end