我对python编程很陌生。
我想基于键name
创建一个新的词典列表。如果name
相等,则为id
值。
a = [{'id': 1, 'name': 'paul'},{'id': 2, 'name': 'john'},{'id': 3, 'name': 'john'},{'id': 4, 'name': 'john'}]
新列表如下:
new_a = [{'id': 1, 'name': 'paul'},{'id': 9, 'name': 'john'}]
提前致谢!
答案 0 :(得分:1)
您可以使用Counter
进行转换,然后进行一些转换,例如:
from collections import Counter
ctr = Counter()
for dic in a:
ctr[dic['name']] += dic['id']
new_a = [{'name': name, 'id': id} for name,id in ctr.iteritems()]
这会产生:
>>> new_a
[{'name': 'paul', 'id': 1}, {'name': 'john', 'id': 9}]
请注意,列表的顺序未确定。
答案 1 :(得分:1)
此代码也会按照您的要求执行,但是,我认为不同的数据结构设置可能会做得更好。
trait