<p>我有两个未排序的整数列表,没有重复项。它们都包含相同的元素,但顺序不同。我希望以最低的时间复杂度找到两个列表之间公共元素的索引。比如说</p>
<pre><code>a = [1, 8, 5, 3, 4]
b = [5, 4, 1, 3, 8]
</code></pre>
<p>输出应为:</p>
<pre><code>list1[0] With list2[2]
list1[1] With list2[4]
list1[2] With list2[0]
and so on
</code></pre>
<p>我曾想过使用set。交叉点,然后使用“index”函数查找索引,但我不知道如何以正确的方式打印输出</p>
<p>这就是我尝试过的</p>
<pre><code>b = set(list1).intersection(list2)
ina = [list1.index(x) for x in b]
inb = [list2.index(x) for x in b]
print (ina , inb )
</code></pre>
<pre><code>a = [1, 8, 5, 3, 4]
b = [5, 4, 1, 3, 8]
e2i = {e : i for (i, e) in enumerate(b)}
for i, e in enumerate(a):
if e in e2i:
print('list1[%d] with list2[%d]' % (i, e2i[e]))
</code></pre>