擅长:python、mysql、java
<p>使用<code>itertools.groupby</code>,并取每组中的第一个:</p>
<pre><code>def uniq(lst):
for _, grp in itertools.groupby(lst, lambda d: (d['category'], d['name'])):
yield list(grp)[0]
lst = [{'category': 'software', 'name': 'irssi', 'version': '1.2.0'},
{'category': 'software', 'name': 'irssi', 'version': '1.1.2'},
{'category': 'software', 'name': 'hexchat', 'version': '2.14.2'}]
print(list(uniq(lst))
</code></pre>