Python获取两个列表元素的所有可能配对及其索引

33 投票
2 回答
39398 浏览
提问于 2025-04-17 06:54

假设我有两个列表:

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)就是第一对。

2 个回答

9

这样做的一种方法:

  1. 在第一个列表中找到你要找的那对的第一个元素:

    p = (1, 4)
    i = a.index(p[0])
    
  2. 在第二个列表中找到你要找的那对的第二个元素:

    j = b.index(p[1])
    
  3. 计算在结果列表中的位置:

    k = i * len(b) + j
    
59

为了完整回答这个问题,我们继续用这个例子:

import itertools  

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

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

不过要注意,这里的列表索引是从零开始的,也就是说是0而不是1。

撰写回答