擅长:python、mysql、java
<p>你可以使用列表理解来得到结果</p>
<pre><code>result = [filter(lambda y: y.key == x.key, myobj) for x in objects]
</code></pre>
<p>编辑:</p>
<p>这将返回一个list列表,它不是所需的anwser操作,它需要一个额外的<code>reduce</code>来确定结果</p>
<pre><code>def intersect():
o1 = {"key":300, "x":18.0, "y":100.0}
o2 = {"key":500, "x":18.0, "y":100.0}
o3 = {"key":600, "x":18.0, "y":100.0}
x1 = {"key":300, "x":18.0, "y":100.0}
x2 = {"key":300, "x":18.0, "y":100.0}
myobj = [o1, o2, o3]
objects = [x1, x2]
result = reduce(lambda x,y: x+y, [filter(lambda y: y['key'] == x['key'], myobj) for x in objects])
print result
</code></pre>