擅长:python、mysql、java
<p>您可以使用<a href="http://www.linuxtopia.org/online_books/programming_books/python_programming/python_ch16s03.html" rel="nofollow">set difference</a>操作。</p>
<pre><code>print set(data['parts'])-set(i[1] for i in data['glue'])
>>> set(['www'])
</code></pre>
<p>或者简单地使用<a href="https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions" rel="nofollow">list comprehensions</a>:</p>
<pre><code>print [i for i in data['parts'] if i not in (j[1] for j in data['glue'])]
>>> ['www']
</code></pre>
<p>set操作在speed部门胜出,运行操作<em>10000000次</em>,我们可以看到列表理解接管的时间比<strong>16s长:</p>
<pre><code>import timeit
print timeit.timeit(lambda : set(data['parts'])-set(i[1] for i in data['glue']), number=10000000)
>>> 16.8089739356
print timeit.timeit(lambda : [i for i in data['parts'] if i not in (j[1] for j in data['glue'])], number=10000000)
>>> 33.5426096522
</code></pre>