【发布时间】:2020-10-13 08:52:33
【问题描述】:
问题
给定 2 个列表 A 和 B,我想获取列表 A 中存在于列表 B 中的所有元素的索引。每个元素都是一个元组。
我正在使用大小为 40,000 个左右元素的列表。
示例案例
输入:
A = [(1,2),(3,4),(5,6),(7,8)]
B = [(1,2),(3,4),(5,6)]
预期输出:
[0,1,2]
尝试的解决方案
我尝试了两种解决方案:
1) 使用地图功能
m = map(a.index,b)
list(m)
2) 使用列表理解
m = [a.index(item) for item in b if item in a]
这些方法似乎花费了太多时间。有没有其他方法可以做到这一点?
【问题讨论】:
-
您能否提供一个清晰的输入和输出示例?
-
这还不清楚。你为什么要提供
b?如果你只是检查a的位置? -
这里为什么有
numpy标签?你试过使用 Numpy 数组吗? -
尝试 np.where 与 np.all 和 np.sum。
np.where(np.sum([np.all(np.array(a)== i,axis=1) for i in b],axis=0).astype(bool)) -
@Sruthi 示例中的预期输出不应该是
[0, 1, 2]吗?