擅长:python、mysql、java
<p>为了得到一个简单的实现,你可以对列表进行排序,然后在它们之间进行迭代,得到那些具有相同<code>id</code>的元素,为了使你的复杂度接近O(N),你应该保持列表的排序。在</p>
<p>例如</p>
<pre><code>list1.sort()
list2.sort()
results = []
try:
iter1 = iter(list1)
iter2 = iter(list2)
i = iter1.next()
j = iter2.next()
while True:
if i[0] == j[0]:
results.append((i[0], i[1], j[1]))
i = iter1.next()
j = iter2.next()
elif i[0] < j[0]:
i = iter1.next()
else:
j = iter2.next()
except StopIteration:
pass
</code></pre>