我想本质上使用一个列表,即。
L = [10, 10, 100, 10, 17, 15]
Run Code Online (Sandbox Code Playgroud)
并使用另一个列表
R = [10, 15]
Run Code Online (Sandbox Code Playgroud)
想回来
N = [0, 1, 3, 5] // indices of L that return the values in R
Run Code Online (Sandbox Code Playgroud)
索恩的尝试
我尝试使用L.index()获取索引,但是仅返回第一个值。然后,我尝试在L上运行一个for循环,并每次使用L.index(R [0]),但是类似地,它仅返回其找到的第一个索引。
for i in range(len(L)):
j = R[i]
N.append(L.index(j))
return N
Run Code Online (Sandbox Code Playgroud)
这将返回超出范围的索引,这是有意义的,但是我如何使其遍历L?
谢谢
N = []
for i in range(len(L)):
if L[i] in R:
N.append(i)
Run Code Online (Sandbox Code Playgroud)
或使用发电机
N = [i for i in range(len(L)) if L[i] in R]
Run Code Online (Sandbox Code Playgroud)
或与数组
import numpy as np
N=np.where(np.isin(L,R))
Run Code Online (Sandbox Code Playgroud)