擅长:python、mysql、java
<p>分别创建计数的映射;使用<a href="http://docs.python.org/2/library/collections.html#collections.Counter" rel="noreferrer">^{<cd1>}</a>可以很容易地实现这一点:</p>
<pre><code>from collections import Counter
y_counts = Counter(obj.y for obj in items)
test = [obj for obj in items if y_counts[obj.y] > 1]
</code></pre>
<p>演示:</p>
<pre><code>>>> from collections import Counter
>>> from collections import namedtuple
>>> Obj = namedtuple('Obj', ['x', 'y'])
>>> items = [Obj(1,1), Obj(1,2), Obj(1,3), Obj(1,3), Obj(1,3)]
>>> y_counts = Counter(obj.y for obj in items)
>>> [obj for obj in items if y_counts[obj.y] > 1]
[Obj(x=1, y=3), Obj(x=1, y=3), Obj(x=1, y=3)]
</code></pre>