在两个python列表中查找常见项目的索引

时间:2018-07-04 10:18:59

标签: python list

我在python list_A和list_B中有两个列表,我想找到它们共享的共同项目。我的代码如下:

both = []
for i in list_A:
    for j in list_B:
        if i == j:
            both.append(i)

最后的公共列表包含公共项目。但是,我还想返回最初两个列表中这些元素的索引。我该怎么办?

2 个答案:

答案 0 :(得分:3)

在python中建议您尽量避免使用for循环。您可以通过使用python set如下高效地找到两个列表中的公共元素

both = set(list_A).intersection(list_B)

然后,您可以使用内置的index方法找到索引

indices_A = [list_A.index(x) for x in both]
indices_B = [list_B.index(x) for x in both]

答案 1 :(得分:-1)

不是遍历列表,而是通过索引访问元素:

both = []
for i in range(len(list_A)):
    for j in range(len(list_B)):
        if list_A[i] == list_B[j]:
            both.append((i,j))

这里i和j将采用整数值,您可以按索引检查list_A和list_B中的值。