yucongo
2019-12-01 11:02:12 +08:00
# 我来学习一下 groupby 的用法
import numpy as np
from itertools import groupby
info = [{'name':'apple','value':2,'package':3},{'name':'orange','value':5,'package':4},{'name':'apple','value':5,'package':5}]
lst = [[key, [*np.asarray([[*elm.values()][1:] for elm in group]).sum(axis=0)]] for key, group in groupby(sorted(info, key=lambda x: x.get('name')), lambda x: x.get('name'))]
# ->[['apple', [7, 8]], ['orange', [5, 4]]]
[{**dict(zip([*info[0].keys()][:1], elm[:1])), **dict(zip([*info[0].keys()][1:], elm[1:][0]))} for elm in lst]
# ->[{'name': 'apple', 'value': 7, 'package': 8}, {'name': 'orange', 'value': 5, 'package': 4}]