Soy bastante nuevo y espero que no sea demasiado obvio, pero parece que no puedo encontrar una respuesta breve y precisa al siguiente problema.
Tengo dos listas:
a = [2,3,5,2,5,6,7,2] b = [2,5,6]
Me gustaría encontrar cuando todos los índices de la segunda lista ( b
) estén en la primera lista ( a
), de modo que obtenga algo como esto:
índices de b en a: 3, 4, 5
o b = a[3:6]
Con una lista de comprensión:
>>> [(i, i+len(b)) for i in range(len(a)) if a[i:i+len(b)] == b] [(3, 6)]
O con un bucle for:
>>> indexes = [] >>> for i in range(len(a)): ... if a[i:i+len(b)] == b: ... indexes.append((i, i+len(b))) ... >>> indexes [(3, 6)]
Esto debería hacer lo que estás pidiendo:
a = [2,3,5,2,5,6,7,2] b = [2,5,6] for i in range(len(a)): if a[i] in b: print i
Por supuesto, debe formatear la statement impresa a su gusto. O no imprima y guarde el resultado en, digamos, otra lista.
¡Buena suerte!