如何找到列表中项目的索引,这些项目存在于另一个列表中?

新手上路,请多包涵

我想基本上使用一个列表,即。

 L = [10, 10, 100, 10, 17, 15]

并使用另一个列表

R = [10, 15]

想回来

N = [0, 1, 3, 5] // indices of L that return the values in R

我尝试使用 L.index() 获取索引,但只返回第一个值。然后我尝试在 L 上运行一个 for 循环,并每次都使用 L.index(R[0]) ,但同样只返回它找到的第一个索引。

  for i in range(len(L)):
       j = R[i]
       N.append(L.index(j))
 return N

这将返回超出范围的索引,这是有道理的,但我如何让它运行 L

原文由 Andre Fu 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 312
2 个回答
N = []

for i in range(len(L)):

    if L[i] in R:
        N.append(i)

或者用发电机

N = [i for i in range(len(L)) if L[i] in R]

或者用数组

import numpy as np

N=np.where(np.isin(L,R))

原文由 Demetri Pananos 发布,翻译遵循 CC BY-SA 4.0 许可协议

[i for i,l in enumerate(L) if l in R]

原文由 Angelos 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题