回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个由Category,Tag,TagCount组成的元组列表。它们按类别和标记计数排序。你知道吗</p>
<pre><code>[(u'Agriculture', u'Farming', 3L), (u'Agriculture', u'Business', 2L), (u'Agriculture', u'Animal', 2L), (u'Agriculture', u'Illness', 1L), (u'Agriculture', u'Health', 1L), (u'Agriculture', u'Disability', 1L),
(u'Agriculture', u'Carers', 1L), (u'Employment', u'Money', 1L), (u'Employment', u'Business', 1L),
(u'Employment', u'Tax', 1L), (u'Employment', u'Debt', 1L), (u'Employment', u'Budget', 1L),
(u'Environment', u'Business', 2L), (u'Environment', u'Animal', 2L), (u'Environment', u'Trees', 2L)]
</code></pre>
<p>我希望能够得到前3个元组在每个类别。所以我想回来</p>
<pre><code>[(u'Agriculture', u'Farming', 3L), (u'Agriculture', u'Business', 2L), (u'Agriculture', u'Animal', 2L),
(u'Employment', u'Money', 1L), (u'Employment', u'Business', 1L), (u'Employment', u'Tax', 1L),
(u'Environment', u'Business', 2L), (u'Environment', u'Animal', 2L), (u'Environment', u'Trees', 2L)]
</code></pre>
<p>我知道我可以在for循环和计数器中使用它,但是我觉得使用lambdas可能有一种简单的方法我完全不知道。你知道吗</p>
<p>以下是我的作品:</p>
<pre><code>output = []
counter = 1
last_category = ''
for res in results:
category = res[0]
if category != last_category: counter = 1
if category == last_category:
if counter <= 3:
output.append(res)
counter +=1
last_category = category
</code></pre>