0
給定n個包含m個詞典作爲其元素的列表,我想用一個連接的詞典集產生一個新列表。根據鍵值對匹配添加兩個詞典列表中的元素匹配
l1 = [{"index":'a', "b":2,'c':9}, {"index":'b', "b":3,"c":5}, {"index":'c', "b":8,"c":8}]
l2 = [{"index":'a', "b":4,'c':8}, {"index":'b', "b":9,"c":10},{"index":None, "b":11,"c":10}]
我想產生一個加入列表:
l3 = [{"index":'a', "b":6, "c":17},
{"index":'b', "b":12, "c":15},
{"index":'c', "b":8, "c":8},
{"index":None, "b":11,"c":10}]
我有可以合併兩個列表的方法。但正如你在上面看到的,我也想添加這些元素。
def merge_lists(l1, l2, key):
merged = {}
for item in l1+l2:
if item[key] in merged:
merged[item[key]].update(item)
else:
merged[item[key]] = item
return [val for (_, val) in merged.items()]
l3 = merge_lists(l1,l2,'index')
什麼是在Python中執行此操作的最有效方法?
具有相同的「索引」的字典總是在列表中的相同位置?如果不是,他們是否應該合併? –