我有两个清单:
a=['book','car','car','have']
b=['car','have']
我想要这个输出:
a_basedon_b_indexes=[1,2,3]# 'car' and 'have' indexes in list a
我想要这个输出的一行表达式。(我知道如何用for循环)。这可能在python中?
IIUC,您可以遍历a
中的每个元素,如果该元素位于b
中,则存储索引。
配方很简单;
>>> b = set(b)
>>> [i for i, x in enumerate(a) if x in b]
[1, 2, 3]
使用set
可以更快地查找。
你可以在列表理解中使用enumerate
>>> [i for i,j in enumerate(a) if j in b]
[1, 2, 3]
如果b
很大,我建议使用set
,因为in
操作会更快
>>> b = {'car', 'have'}
>>> [i for i,j in enumerate(a) if j in b]
[1, 2, 3]