擅长:python、mysql、java
<p>尝试:</p>
<pre class="lang-py prettyprint-override"><code>from itertools import groupby
d=[[{'index': 20140, 'lang': 'tag4'},
{'index': 20140, 'lang': 'tag'},
{'index': 20140, 'lang': 'tag2'}],
[{'index': 20416, 'lang': 'tag3'},
{'index': 20416, 'lang': 'tag2'},
{'index': 20416, 'lang': 'tag3'}],
[{'index': 20594, 'lang': 'tag'},
{'index': 20594, 'lang': 'tag4'},
{'index': 20594, 'lang': 'tag5'}]]
def reduce_by_index(el):
el=sorted(el, key=lambda x: x.get('index', -1))
el=groupby(el, key=lambda x: x.get('index', -1))
res=[]
for k, v in el:
res.append({'index': k, 'lang': ', '.join([x.get('lang', None) for x in v])})
return res
d=list(map(reduce_by_index, d))
</code></pre>
<p>产出:</p>
<pre class="lang-py prettyprint-override"><code>[[{'index': 20140, 'lang': 'tag4, tag, tag2'}], [{'index': 20416, 'lang': 'tag3, tag2, tag3'}], [{'index': 20594, 'lang': 'tag, tag4, tag5'}]]
</code></pre>