Python все возможные пары из 2 элементов списка и получение индекса этой пары

скажем, у меня есть два списка:

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

Итак, у меня может быть 9 пар этих членов списка:

(1,4)
(1,5)
(1,6)

(2,4)
(2,5)
(2,6)

(3,4)
(3,5)
(3,6)

Теперь, учитывая два члена списка, как указано выше, могу ли я узнать парный индекс? Как и (1,4) сверху, это будет первая пара.

Ответ 1

И чтобы завершить ответ и остаться в примере:

import itertools  

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

idx = c.index((1,4))

Но это будет индекс списка на основе нуля, поэтому 0 вместо 1.

Ответ 2

Один из способов сделать это:

  • Найдите первый элемент пары, которую вы ищете в первом списке:

    p = (1, 4)
    i = a.index(p[0])
    
  • Найдите второй элемент пары, которую вы ищете во втором списке:

    j = b.index(p[1])
    
  • Вычислить индекс в списке продуктов:

    k = i * len(b) + j