Python todos los pares posibles de 2 elementos de la lista, y obtener el índice de ese par

digamos que tengo dos listas:

a = list(1,2,3) b = list(4,5,6) 

Entonces puedo tener 9 pares de estos miembros de la lista:

 (1,4) (1,5) (1,6) (2,4) (2,5) (2,6) (3,4) (3,5) (3,6) 

Ahora, dados dos miembros de la lista como arriba, ¿puedo encontrar el índice del par? Como (1,4) desde arriba sería el primer par.

Y para completar la respuesta y permanecer en el ejemplo:

 import itertools a = [1, 2, 3] b = [4, 5, 6] c = list(itertools.product(a, b)) idx = c.index((1,4)) 

Pero este será el índice de la lista basada en cero, entonces 0 en lugar de 1.

Una forma de hacer esto:

  1. Encuentre el primer elemento de la pareja que busca en la primera lista:

     p = (1, 4) i = a.index(p[0]) 
  2. Encuentre el segundo elemento del par que busca en la segunda lista:

     j = b.index(p[1]) 
  3. Calcule el índice en la lista de productos:

     k = i * len(b) + j