Python 设计一种时间复杂度较低的算法来解决这个问题

Python 设计一种时间复杂度较低的算法来解决这个问题,python,list,algorithm,data-structures,time-complexity,Python,List,Algorithm,Data Structures,Time Complexity,这就是我想到的,但我还是想要一个更有效的。我用的是python语言,但我也懂java。重要的是高效的算法。 这个问题是建立在收集指数的基础上的。我的意思是在列表1中,第一个数字是15(在索引0处)。。任务是在第二个列表中找到相同的数字,但打印其索引。所以,列表1的15号在列表2的索引2中。等等 如果您不懂python或java,那没关系,我只想知道解决这个问题的有效算法。如果两个列表中的所有元素都是唯一的,并且长度相同,那么您可以使用: list1 = [15, 12, 13, 19, 14]

这就是我想到的,但我还是想要一个更有效的。我用的是python语言,但我也懂java。重要的是高效的算法。 这个问题是建立在收集指数的基础上的。我的意思是在列表1中,第一个数字是15(在索引0处)。。任务是在第二个列表中找到相同的数字,但打印其索引。所以,列表1的15号在列表2的索引2中。等等
如果您不懂python或java,那没关系,我只想知道解决这个问题的有效算法。

如果两个列表中的所有元素都是唯一的,并且长度相同,那么您可以使用:

list1 = [15, 12, 13, 19, 14] 
list2 = [19, 13, 15, 12, 14]

for index,i in enumerate(list1):
    print(f'A[{index}] with B[{list2.index(i)}]')
输出:

A[0] with B[2]
A[1] with B[3]
A[2] with B[1]
A[3] with B[0]
A[4] with B[4]

您已经做了很好的工作,但是如果您只想知道两个列表中值的指定位置,您可以使用sort()方法匹配这两个位置并知道每个索引处的值。 代码在这里

list1 = [63,3,82,45,1]
list2 = [3,82,63,1,45]
list1.sort()
list2.sort()
for I in range(len(list1)):
    print('Position at index',I,'in both the lists is',list1[I])

从L2绘制地图,在L1上迭代并签入mapAs。您应该将代码直接粘贴到问题中,而不是链接到外部站点。至于提示,您应该考虑使用辅助数据结构或排序,这两种方法都比当前的蛮力方法更有效率。堆栈溢出不是一个免费的代码编写服务。