Python 字典递归合并

Python 字典递归合并

def rec_merge(d1, d2):
    """
    递归合并字典
    :param d1: {"a": {"c": 2, "d": 1}, "b": 2}
    :param d2: {"a": {"c": 1, "f": {"zzz": 2}}, "c": 3, }
    :return: {'a': {'c': 1, 'd': 1, 'f': {'zzz': 2}}, 'b': 2, 'c': 3}
    """
    for key, value in d2.items():
        if key not in d1:
            d1[key] = value
        else:
            if isinstance(value, dict):
                rec_merge(d1[key], value)
            else:
                d1[key] = value
    return d1


if __name__ == "__main__":
    d1 = {"a": {"c": 2, "d": 1}, "b": 2}
    d2 = {"a": {"c": 1, "f": {"zzz": 2}}, "c": 3, }

    d1 = rec_merge(d1, d2)
    print(d1)
    #{'a': {'c': 1, 'd': 1, 'f': {'zzz': 2}}, 'b': 2, 'c': 3}

猜你喜欢

转载自www.cnblogs.com/zhaoyingjie/p/12721901.html