擅长:python、mysql、java
<p>有很多方法可以完成这项任务</p>
<blockquote>
<p>first using detaultdict :</p>
</blockquote>
<pre><code>import collections
data=[(9600002, 42, 3),
(9600001, 17, 3),
(9600003, 11, 1),
(9600002, 14, 5),
(9600001, 17, 1),
(9600003, 11, 4),
(9600001, 17, 4),
(9600001, 14, 3),
(9600002, 42, 6),
(9600002, 42, 1)]
d=collections.defaultdict(list)
for i in data:
d[(i[0],i[1])].append(i)
print(list(filter(lambda x:len(x)>1,d.values())))
</code></pre>
<p>输出:</p>
^{pr2}$
<blockquote>
<p>Second using itertools groupby :</p>
</blockquote>
<pre><code>import itertools
print(list(filter(lambda x:len(x)>1,[list(j) for i,j in itertools.groupby(sorted(data),key=lambda x:(x[0],x[1]))])))
</code></pre>
<p>输出:</p>
^{4}$
<blockquote>
<p>Third approach</p>
</blockquote>
<p>最后,您还可以尝试手动方式,而不是使用任何导入:</p>
<pre><code>d={}
for i in data:
if (i[0],i[1]) not in d:
d[(i[0],i[1])]=[i]
else:
d[(i[0],i[1])].append(i)
print(list(filter(lambda x:len(x)>1,d.values())))
</code></pre>
<p>输出:</p>
^{pr2}$