是否有某种方法可以对ptyhon的list和dic中的结构进行改革?

时间:2019-12-10 01:36:36

标签: python-3.x dictionary arraylist

这是一个列表:

test=[
{'name':'David','money':10},
{'name':'David','money':20},
{'name':'Scart','money':50},
]

我想对此进行测试:

result=[
{'name':David,'money':30,'count':2},
{'name':Scart,'money':50,'count':1}
]

测试的长度可能超过500,非常感谢!

1 个答案:

答案 0 :(得分:0)

这是您的测试列表。

>>> test=[
... {'name':'David','money':10},
... {'name':'David','money':20},
... {'name':'Scart','money':50},
... ]

您可以首先构建将名称映射到金额的字典

>>> amounts_by_name = {}
>>> for d in test:
...     amounts_by_name.setdefault(d['name'], []).append(d['money'])
...

setdefault将创建(d[name], [])条目,如果它不存在。)金额被附加到列表中:

>>> amounts_by_name
{'David': [10, 20], 'Scart': [50]}

现在,您可以将字典变成列表:

>>> [{'name': name, 'money': sum(amounts), 'count': len(amounts)} for name, amounts in amounts_by_name.items()]
[{'name': 'David', 'money': 30, 'count': 2}, {'name': 'Scart', 'money': 50, 'count': 1}]