2016-11-30 86 views
-1

我有一个列表,其中有字典值。我想按ts分组并收集其他值。请注意,ts是常见的,并将出现在列表中的所有字典中。但是像惠普,BP这样的其他价值可以在每本字典中更改。 请建议。收集Python列表中的词典值

输入

[ 
{'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} 
] 
+1

如果有多个'h'对应于'ts'会怎么样? – thefourtheye

+0

条件“如果它包含'ts'作为关键字,整理字典? –

+1

我不想给-1,但作为@KlausD。说你尝试了什么? – obayhan

回答

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'} 
] 
+0

库尔,感谢Ahsanul,工作正常 –