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

新手上路,请多包涵

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

 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 许可协议

阅读 308
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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题