gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 03:48:18 25 4
gpt4 key购买 nike

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

我有两个列表,第一个列表,比方说 A = [1, 2, 3, 4, 5, 6] 是排序的,第二个列表,比方说 B = [3, 4, 1, 6, 2, 5] 未排序。我想要实现的是获取列表 B 中排序列表 A 的每个元素的索引值。例如,当我搜索元素 A[5] = 6 时,我想得到索引 i = 3 的结果。我已经以简单的方式实现如下:

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

我想想出一种方法,将它减少到只有一个循环,而不是这两个嵌套的 for 循环。

最佳答案

如果您知道 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),而其他解决方案的复杂度为 O(n^2),因此在大型列表上会快得多。

关于python - 如何在包含相同元素的另一个列表中找到一个列表的元素索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64468623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com