如何在包含相同元素的另一个列表中找到一个列表的元素索引?

Teo Protoulis

我正在尝试用python这个简单的任务编写代码(这是一个更大的项目的一部分):

我有两个列表,其中第一个(假设A = [1, 2, 3, 4, 5, 6]是已排序)和第二个(例如B = [3, 4, 1, 6, 2, 5],未排序)。我要实现的是获取listA排序列表的每个元素的索引值B例如,i = 3当我搜索element时,我想给出index的结果A[5] = 6我已经通过以下简单方式实现了:

for i in range(6):
    for j in range(6):
        if A[i] == B[j]:
            index = j

我想提出一种将其减少到仅一个循环而不是这两个嵌套for循环的方法。

普拉纳夫·霍桑加迪(Pranav Hosangadi)

如果您知道其中的所有值B都是唯一的,则一种方法是创建一个字典,将值映射B到它们的索引中。

b_dict = {}
for i, b in enumerate(B):
    b_dict[b] = i

然后,循环A并从获取所有值b_dict

a_indices = [b_dict[a] for a in A]

有了您的清单,我们得到

A: [1, 2, 3, 4, 5, 6]
B: [3, 4, 1, 6, 2, 5]
a_indices: [2, 4, 0, 1, 5, 3]

与其他解决方案O(n ^ 2)相比,该解决方案为O(n),因此在大型列表上将更快。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何验证列表元素是否与另一个列表相同?

从列表创建字典的Python方式,其中键是在另一个列表中找到的元素,值是键之间的元素

检查一个列表是否包含另一个列表中的元素

如何找到该列表包含另一个列表中的所有元素?

如何在sqlite中查找列表是否包含另一个列表的任何元素

如何在另一个列表之间控制另一个元素列表

如何在另一个向量R中找到一个向量中元素的索引

我如何才能找到一个列表,该列表在任何元素中都包含另一个列表?

如何在Xpath中的另一个<span>中找到一个元素<span>?

如何在scala中的另一个列表的每个元素的末尾添加一个列表的每个元素?

如何在两个列表中找到一个公共元素?序言

如何根据另一个列表中另一个元素的索引从列表中写出元素?

如何在具有另一个索引数组的数组中找到元素?

检查一个列表是否包含另一个列表的元素

如何在python中求和与另一个列表的元素相对应的列表元素

如何根据相同元素的另一个值在字典列表中搜索元素的值?

根据另一个列表中的索引汇总一个列表中的元素

如何在python中将一个元素从列表移动到另一个

如何删除一个列表中未包含在另一个列表中的元素?

如何在另一个 ContentView 中找到一个元素?

查找与另一个列表对应的元素的索引

如何使用一个列表中的每个元素作为另一个列表的索引?

如何在 Python 中检查列表的每个元素,是否包含在另一个列表中?

如何在第一个元素最大的列表中找到一个列表?

如何检查列表列表是否包含来自另一个列表的任何元素

如何检查一个列表是否包含另一个列表的所有元素,包括重复项

从另一个列表索引列表元素

如何检查 Python 列表是否包含另一个列表的元素重复未被忽略

如何在 python 列表中找到下一个非 NaN 元素的索引