擅长:python、mysql、java
<p>我认为有一种比我这里的更好的迭代方法,但这是可行的:</p>
<pre><code>from operator import itemgetter
dataset = [
{ 'idx': 5, 'score': 0.85, 'group': 'Europe' },
{ 'idx': 8, 'score': 0.77, 'group': 'Australia' },
{ 'idx': 12, 'score': 0.70, 'group': 'S.America' },
{ 'idx': 13, 'score': 0.71, 'group': 'Australia' },
{ 'idx': 42, 'score': 0.82, 'group': 'Europe' },
{ 'idx': 45, 'score': 0.90, 'group': 'Asia' },
{ 'idx': 65, 'score': 0.91, 'group': 'Asia' },
{ 'idx': 73, 'score': 0.72, 'group': 'S.America' }
]
score_sorted = sorted(dataset, key=itemgetter('score'), reverse=True)
group_score_sorted = []
groups_completed = []
for score in score_sorted:
group_name = score['group']
if not group_name in groups_completed:
groups_completed.append(group_name)
for group in score_sorted:
if group['group'] = group_name:
group_score_sorted.append(group)
#group_score_sorted now contains sorted list
</code></pre>