[問題] 多個dict merge問題

看板Python作者 (kuli)時間12年前 (2013/09/07 18:18), 編輯推噓3(303)
留言6則, 4人參與, 最新討論串1/1
假如有多個dict如下列,且dict value是 list,list長度每個dict 都不同,要以mian dict的key為主,merge所有 dict,其他dict若沒 main dict key,而該dict key值填0. main dict = {a:[1], b:[2], c:[3], d:[4], ....} dictA = {b:[2,2], c:[3,3] ,...} dictB = {a:[1], c:[3] ,....} 最後merge結果為 dict = {a:[1,0,0,1], b:[2,2,2,0], c:[3,3,3,3], d:[4,0,0,0], ........} 請問除了for key in main dict.keys():然後用try..exceptc或if dict.get方 式比對每個dict外,有其他方式能不用這個方法?非常感謝. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.182.224.42

09/07 18:39, , 1F
main_dict[key] += dictA.get(key, [0])
09/07 18:39, 1F

09/07 23:20, , 2F
因為dict value list長度不同,有方式能補上正確0的數目?
09/07 23:20, 2F

09/08 01:24, , 3F
key 沒有順序喔,可以改用 collections.OrderedDict
09/08 01:24, 3F

09/08 01:28, , 4F
抱歉我搞錯了 @@
09/08 01:28, 4F

09/08 02:49, , 5F
dictA.get(key, len(dictA.values()[0]) * [0])
09/08 02:49, 5F

09/08 17:26, , 6F
感謝大家幫忙
09/08 17:26, 6F
文章代碼(AID): #1IAlrWI4 (Python)
文章代碼(AID): #1IAlrWI4 (Python)