擅长:python、mysql、java
<p>您可以利用<a href="http://docs.python.org/library/stdtypes.html#set.intersection" rel="nofollow">^{<cd1>}</a>方法获取2个或多个集合并找到它们的交集这一事实。另外,您可以使用<a href="http://docs.python.org/tutorial/datastructures.html#list-comprehensions" rel="nofollow">list comprehensions</a>来减少代码膨胀。最后,您可以使用<a href="http://docs.python.org/tutorial/controlflow.html#unpacking-argument-lists" rel="nofollow">argument list unpacking</a>使其成为一行程序。例如:</p>
<pre><code>>>> list1 = [(111, 222), (111, 333), (111, 444)]
>>> list2 = [(555, 333), (555, 444), (555, 777)]
>>> list3 = [(123, 444), (123, 888), (123, 999)]
>>>
>>> set.intersection(*[set(t[1] for t in l) for l in (list1, list2, list3)])
set([444])
</code></pre>
<p>为了帮助您理解发生了什么,对<code>set.intersection(...)</code>的调用等效于以下python代码:</p>
^{pr2}$