

El problema es que para poder aplicar la función index() debemos estar seguros que el valor a buscar esta en la lista y para averiguar eso, Python nos provee de un operardor in, probamos a ver que pasa:

Probamos la función busqueda_con_index():
En el tipo de búsqueda lineal se compara uno a uno los elementos de la lista con el valor de x, y retornar el valor de la posición donde lo encontramos en caso de encontrarlo.
Si llegamos al final de la lista sin haber salido antes de la función es porque el valor de x no está en la lista, y en ese caso retornamos -1. En esta solución necesitamos una variable i que cuente en cada momento en qué posición de la lista estamos parados. Esta variable se inicializa en 0 antes de entrar en el ciclo y se incrementa en 1 en cada una de las posiciones que se recorre.
El programa nos queda entonces como se muestra en el Código 8.2.
CÓDIGO 8.2 BUSQUEDA_LINEAL.PY: FUNCIÓN DE BÚSQUEDA LINEAL 
# y AHORA lo PROBAMOS

Ahora podemos analizar el texto de
BUSQUEDA_LINEAL:
(línea 16) del código es un ciclo que recorre uno a uno los elementos de
la lista, y en el cuerpo de ese ciclo, en la línea 20 se compara cada
elemento con el valor buscado. En el caso de encontrarlo (línea 21) se
devuelve la posición.Es decir que si el valor está en la posición p de la lista se hacen p comparaciones, y si el valor no está se hacen tantas comparaciones como elementos tenga la lista.
La hipótesis es: Si la lista crece, la cantidad de comparaciones para encontrar un valor arbitrario crecerá en forma proporcional al tamaño de la lista.