擅长:python、mysql、java
<p>最好将“desc”值作为列表保存在任何地方,即使它们只包含一个元素。这样你就可以了</p>
<pre><code>for d in b:
print d['id']
for desc in d['desc']:
print desc
</code></pre>
<p>这也适用于字符串,只是返回单个字符,这不是您想要的。</p>
<p>现在的解决方案是给你一个列表列表:</p>
<pre><code>a =[{'id': 1,'desc': 'smth'},{'id': 2,'desc': 'smthelse'},{'id': 1,'desc': 'smthelse2'},{'id': 1,'desc': 'smthelse3'}]
c = {}
for d in a:
c.setdefault(d['id'], []).append(d['desc'])
b = [{'id': k, 'desc': v} for k,v in c.iteritems()]
</code></pre>
<p><code>b</code>现在是:</p>
<pre><code>[{'desc': ['smth', 'smthelse2', 'smthelse3'], 'id': 1},
{'desc': ['smthelse'], 'id': 2}]
</code></pre>