python all possible pairs of 2 list elements, and getting the index of that pair
Question:
let’s say I have two lists:
a = list(1,2,3)
b = list(4,5,6)
So I can have 9 pairs of these list members:
(1,4)
(1,5)
(1,6)
(2,4)
(2,5)
(2,6)
(3,4)
(3,5)
(3,6)
Now, given two list members like above, can I find out the pair’s index?
Like (1,4) from above would be the 1st pair.
Answers:
And to complete the answer and stay in the example:
import itertools
a = [1, 2, 3]
b = [4, 5, 6]
c = list(itertools.product(a, b))
idx = c.index((1,4))
But this will be the zero-based list index, so 0 instead of 1.
One way to do this:
-
Find the first element of the pair your are looking for in the first list:
p = (1, 4)
i = a.index(p[0])
-
Find the second element of the pair your are looking for in the second list:
j = b.index(p[1])
-
Compute the index in the product list:
k = i * len(b) + j
let’s say I have two lists:
a = list(1,2,3)
b = list(4,5,6)
So I can have 9 pairs of these list members:
(1,4)
(1,5)
(1,6)
(2,4)
(2,5)
(2,6)
(3,4)
(3,5)
(3,6)
Now, given two list members like above, can I find out the pair’s index?
Like (1,4) from above would be the 1st pair.
And to complete the answer and stay in the example:
import itertools
a = [1, 2, 3]
b = [4, 5, 6]
c = list(itertools.product(a, b))
idx = c.index((1,4))
But this will be the zero-based list index, so 0 instead of 1.
One way to do this:
-
Find the first element of the pair your are looking for in the first list:
p = (1, 4) i = a.index(p[0])
-
Find the second element of the pair your are looking for in the second list:
j = b.index(p[1])
-
Compute the index in the product list:
k = i * len(b) + j