我正在尝试合并字典列表,而不会丢失任何数据。
我有:
a = [{'ArticleUrl': 'a', 'Text': 'labor activists negative'},
{'ArticleUrl': 'a', 'Text': 'funds negative'},
{'ArticleUrl': 'b', 'Text': 'Timothy S. Hillman negative'},
{'ArticleUrl': 'b', 'Text': 'AFT negative'},
{'ArticleUrl': 'c', 'Text': 'major outages negative'}]
我想得到的是:
b = [{'ArticleUrl': 'a','Text': 'labor activists negative, funds negative'},
{'ArticleUrl': 'b', 'Text': 'Timothy S. Hillman negative, AFT negative'},
{'ArticleUrl': 'c', 'Text': 'major outages negative'}]
我已经尝试过.update,但是它似乎覆盖了'text'值。任何帮助,将不胜感激!
答案 0 :(得分:1)
您可以创建另一个字典,在迭代列表时更新它并获取值。
lst = [{'ArticleUrl': 'a', 'Text': 'labor activists negative'},
{'ArticleUrl': 'a', 'Text': 'funds negative'},
{'ArticleUrl': 'b', 'Text': 'Timothy S. Hillman negative'},
{'ArticleUrl': 'b', 'Text': 'AFT negative'},
{'ArticleUrl': 'c', 'Text': 'major outages negative'}]
dict_results = {}
for d in lst:
k = d['ArticleUrl']
if k in dict_results:
dict_results[k] += ", " + d['Text']
else:
dict_results[k] = d['Text']
lst = [{'ArticleUrl': k, 'Text': v} for (k,v) in dict_results.items()]
#[{'ArticleUrl': 'a', 'Text': 'labor activists negative, funds negative'}, {'ArticleUrl': 'b', 'Text': 'Timothy S. Hillman negative, AFT negative'}, {'ArticleUrl': 'c', 'Text': 'major outages negative'}]