擅长:python、mysql、java
<p>我可能会这样做:</p>
<pre><code>set1 = set((x.id,x.name,...) for x in list1)
difference = [ x for x in list2 if (x.id,x.name,...) not in set1 ]
</code></pre>
<p>其中<code>...</code>是实例的附加(哈希)属性——您需要包含足够多的属性以使其唯一。</p>
<p>这将使用O(N*M)算法并将其转换为O(max(N,M))算法。</p>