根据另一个列表元素获取一些列表元素索引

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据另一个列表元素获取一些列表元素索引相关的知识,希望对你有一定的参考价值。

我有两个清单:

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]

以上是关于根据另一个列表元素获取一些列表元素索引的主要内容,如果未能解决你的问题,请参考以下文章

redis常用方法

RedisRedis 列表 List 操作 ( 查询操作 | 根据下标获取元素 | 获取列表长度 | 增操作 | 插入值 | 删操作 | 移除值 | 修改操作 | 设置列表指定索引的值 )

从另一个片段中的目录更新片段中的列表视图元素

为啥我不能从将一个列表附加到另一个列表中获取元素

如何根据索引比较两个列表

获取包含元组的列表的索引,其中元组的第一个元素与模式匹配