最好将“ desc”值保留在所有列表中,即使它们仅包含单个元素也是如此。这样你可以做
for d in b: print d['id'] for desc in d['desc']: print desc
这也适用于字符串,只返回单个字符,这不是您想要的。
现在,该解决方案为您提供了列表的字典列表:
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()]
b就是现在:
[{'desc': ['smth', 'smthelse2', 'smthelse3'], 'id': 1}, {'desc': ['smthelse'], 'id': 2}]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)