擅长:python、mysql、java
<p>您可以使用<a href="https://docs.python.org/3/library/itertools.html#itertools.groupby" rel="noreferrer">itertools.groupby</a>对第二个元素进行<em>分组,然后提取每个组的第一个元素:</p>
<pre><code>from itertools import groupby
from operator import itemgetter
data = [('I', 'N'), ('love', 'V'), ('Miley', 'N'), ('Cyrus', 'N'), ('but', 'ADV'), ('hate', 'V'), ('Liam', 'N'),
('Hemsworth', 'N')]
result = [' '.join(t[0] for t in group) for k, group in groupby(data, key=itemgetter(1))]
print(result)
</code></pre>
<p><strong>输出</strong></p>
<pre><code>['I', 'love', 'Miley Cyrus', 'but', 'hate', 'Liam Hemsworth']
</code></pre>
<p>上述<a href="https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions" rel="noreferrer">list comprehension</a>相当于以下for循环:</p>
<pre><code>result = []
for k, group in groupby(data, key=itemgetter(1)):
result.append(' '.join(t[0] for t in group))
</code></pre>