Python все возможные пары из 2 элементов списка, и получение индекса этой пары - PullRequest
20 голосов
/ 23 ноября 2011

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

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-й пары.

Ответы [ 2 ]

32 голосов
/ 23 ноября 2011

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

import itertools  

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

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

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

8 голосов
/ 23 ноября 2011

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

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

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

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

    k = i * len(b) + j
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...