擅长:python、mysql、java
<p>一种可能的解决方案是构建一个辅助字典,以<code>coach</code>作为键,以<code>players</code>列表作为值</p>
<pre><code>d = [
{"players": [{"id": 179, "name": "Santosh"}], "coach": "Xavi Alonso"},
{"players": [{"id": 180, "name": "Hari"}], "coach": "Xavi Alonso"},
{"players": [{"id": 175, "name": "Hitman"}], "coach": "Anna Puyol"}
]
aux = collections.defaultdict(list)
for e in d:
aux[e['coach']].append(e['players'][0])
</code></pre>
<p><code>aux</code>现在是:</p>
<pre><code>>>> aux
defaultdict(<type 'list'>, {'Xavi Alonso': [[{'id': 179, 'name': 'Santosh'}], [{'id': 180, 'name': 'Hari'}]], 'Anna Puyol': [[{'id': 175, 'name': 'Hitman'}]]})
</code></pre>
<p>然后你可以用一个列表来建立你的返回值</p>
<pre><code>[{'players':v, 'coach':k} for k,v in aux.items()]
</code></pre>
<p>哪个是</p>
<pre><code>[{'players': [{'id': 179, 'name': 'Santosh'}, {'id': 180, 'name': 'Hari'}], 'coach': 'Xavi Alonso'}, {'players': [{'id': 175, 'name': 'Hitman'}], 'coach': 'Anna Puyol'}]
</code></pre>