擅长:python、mysql、java
<p>您应该使用<code>itertools.groupby</code>,因为您的列表已排序。你知道吗</p>
<pre><code>rows = [('1', '2'),
('Jack London', 'Son of the Wolf'),
('Jack London', 'Chris Farrington'),
('Jack London', 'The God of His Fathers'),
('Jack London', 'Children of the Frost'),
('William Shakespeare', 'Venus and Adonis'),
('William Shakespeare', 'The Rape of Lucrece'),
('Oscar Wilde', 'Ravenna'),
('Oscar Wilde', 'Poems')]
# I'm not sure how you get here, but that's where you get
from itertools import groupby
from operator import itemgetter
grouped = groupby(rows, itemgetter(0))
result = {group:', '.join([value[1] for value in values]) for group, values in grouped}
</code></pre>
<p>这将为您提供以下结果:</p>
<pre><code>In [1]: pprint(result)
{'1': '2',
'Jack London': 'Son of the Wolf, Chris Farrington, The God of His Fathers, '
'Children of the Frost',
'Oscar Wilde': 'Ravenna, Poems',
'William Shakespeare': 'Venus and Adonis, The Rape of Lucrece'}
</code></pre>