Esta es una generalización del problema "string contains substring" para (más) tipos arbitrarios.La mejor manera de determinar si una secuencia se encuentra en otra secuencia en Python
Dada una secuencia (como una lista o tupla), ¿cuál es la mejor manera de determinar si hay otra secuencia dentro de ella? Como beneficio adicional, debe devolver el índice del elemento donde la subsecuencia comienza:
Ejemplo de uso (Secuencia de Secuencia):
>>> seq_in_seq([5,6], [4,'a',3,5,6])
3
>>> seq_in_seq([5,7], [4,'a',3,5,6])
-1 # or None, or whatever
Hasta el momento, sólo se basan en la fuerza bruta y parece lento, feo y torpe.
Tenga en cuenta que la implementación de KMP dada en code.activestate fue mucho más lenta de 30-500 veces para algunos (quizás entrada no representativa). ¡El benchmarking para ver si los métodos incorporados tontos superan parece ser una buena idea! –
KMP es conocido por ser casi el doble de lento que el algoritmo ingenuo en la práctica. Por lo tanto, para la mayoría de los propósitos es * completamente * inapropiado, a pesar de su buen tiempo de ejecución asintótico en el peor de los casos. –