我有一个列表,里面有dict值。我想按照ts分组并收集其他值。请注意,ts很常见,并且会出现在列表中的所有词典中。但是像HP,BP这样的其他价值观可以在每个字典中改变。 请建议。
输入
[
{'ts': '2016-11-29 19:01', u'HP': 1},
{'ts': '2016-11-29 19:01', u'BP': 1},
{'ts': '2016-11-29 19:01', u'AP': 1},
{'ts': '2016-11-29 19:02', u'HP': 1},
{'ts': '2016-11-29 19:02', u'AP': 1}
]
输出
[
{'ts': '2016-11-29 19:01', u'HP': 1, u'BP': 1,u'AP': 1 },
{'ts': '2016-11-29 19:02', u'HP': 1, u'AP': 1}
]
答案 0 :(得分:0)
您可以使用itertools.groupby()
from itertools import groupby
result = []
for _, v in groupby(a,lambda x:x['ts']):
temp_dict = {}
for dic in v:
temp_dict.update(dic)
result.append(temp_dict)
print result
输出:
[
{u'AP': 1, u'HP': 1, u'BP': 1, 'ts': '2016-11-29 19:01'},
{u'AP': 1, u'HP': 1, 'ts': '2016-11-29 19:02'}
]