以下问题:
我有很多字典,比如:
l = [{"primary_key": 5164, "attribute1": 2},
{"primary_key": 5162, "attribute1": 3},
{"primary_key": 5164, "attribute2": 3}]
我想把它们加入到一个输出列表中,但是合并具有相同主键的字典:
output_l = [{"primary_key": 5164, "attribute1": 2, "attribute2": 3},
{"primary_key": 5162, "attribute1": 3}]
搜索了很多之后,我没有在其他地方找到这个问题。如果它是重复的,对不起。它与this question非常相关,但只有一个列表而不是多个。
3条答案
按热度按时间krcsximq1#
创建一个字典,在其中按主键存储不断增长的字典。以下方法有效:
注意共享属性名,最新的条目将“获胜”。
js4nwp542#
下面是另一种方法:
输出:
c2e8gylq3#
说明:
1.函数m1取字典列表作为输入。
1.该函数创建一个defaultdict,其中"primary_key"作为键,inndict作为值。
1.然后,该函数用inndict更新defaultdict。
1.然后,该函数按primary_key对defaultdict进行排序。
1.然后函数打印排序后的defaultdict。