在同一个字典下合并多个嵌套字典

时间:2017-06-18 08:33:00

标签: python dictionary array-merge

例如有dicA

dicA = {"01Feb":{"a":{"M1":[2,1,3,3],
                  "M2":[3,5,7,9],
                  "L3":[1,1,1,1]
                  },
            "b":{"M1":[2,4,8,1],
                 "M2":[1,1,2,0],
                 "L3":[3,4,6,8]}
                 },
    "02Feb":{"a":{"M1":[2,3,1,1],
                  "M2":[6,5,6,9]
                 },
             "b":{"M1":[2,4,8,1],
                  "M2":[1,1,2,0],
                  "L3":[3,4,6,8]
                  },
             "c":{"M1":[2,3,1,1],
                  "M2":[6,5,6,9],
                  "L3":[0,0,1,1]}
                  },
    "03Feb":{"a":{"M1":[3,3,3,3],
                  "M2":[5,5,7,7],
                  "L3":[3,3,3,3]}
                  }}
对我来说这有点复杂,里面的列表长度相同。 我想将M1和M2合并为M,而只保留L3。它应该是这样的:

dicA = {{"01Feb":{"a":{"M":[5,6,10,12]},                  
                      {"L3":[1,1,1,1]}},
                 {"b":{"M":[3,5,10,1]},
                      {"L3":[3,4,6,8]}}},
        {"02Feb":{"a":{"M":[8,8,7,10]}},
                 {"b":{"M":[3,5,10,1]},
                      {"L3":[3,4,6,8]}},
                 {"c":{"M":[8,8,7,10]},
                      {"L3":[0,0,1,1]}}},
        {"03Feb":{"a":{"M":[8,8,10,10]},
                      {"L3":[3,3,3,3]}}}}

然后,我想合并'a','b'和'c'。最后应该这样:

dicA = {{"01Feb":{"M":[8,11,20,13]},                  
                 {"L3":[4,5,7,9]}},
        {"02Feb":{"M":[19,21,24,21]},
                 {"L3":[3,4,7,9]}},
        {"03Feb":{"M":[8,8,10,10]},
                 {"L3":[3,3,3,3]}}}

1 个答案:

答案 0 :(得分:0)

因为我之前发过类似的问题,所以你们可能会认为这是同一个问题。实际上,这是一个不同的问题,需要合并多个嵌套字典与不同的键。评论中的link显示如何合并多个嵌套字典与相同的键

这是我在这种情况下合并这两种情况的解决方案。

{{1}}

感谢投票给这个问题的人。希望这个解决方案可以帮助需要它的人。此外,欢迎任何新的想法。

此致

D