2016-11-30 85 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,工作正常 –