python 里面实现字典合并

有这个需求,记录下

python3.5 以后的版本 两个方法

方法1

核心代码

dicgoal = {
    
    **dic1,**dic2}

示例

dic1 = {
    
    '1':2,'3':'a'}
dic2 = {
    
    'a':'c','b':4}
dic3 = {
    
    'a':7,'c':8}

dic4 = {
    
    **dic1,**dic2}
dic5 = {
    
    **dic2,**dic3}
print(dic4)
print(dic5)

输出

{‘1’: 2, ‘3’: ‘a’, ‘a’: ‘c’, ‘b’: 4}
{‘a’: 7, ‘b’: 4, ‘c’: 8}

注意: 如果字典间有公共键,后一个键值对(dic2中的)会替代前者(dic1中的)。见示例的 dic5

方法2

核心代码

dicgoal = dic1.copy()
dicgoal.update(dic2)

示例

dic1 = {
    
    '1':2,'3':'a'}
dic2 = {
    
    'a':'c','b':4}
dic3 = {
    
    'a':7,'c':8}

dic6 = dic1.copy()
dic6.update(dic2)
print(dic6)
dic7 = dic2.copy()
dic7.update(dic3)
print(dic7)

输出

{‘1’: 2, ‘3’: ‘a’, ‘a’: ‘c’, ‘b’: 4}
{‘a’: 7, ‘b’: 4, ‘c’: 8}

或者你可以

定义一个函数实现多个字典的合并

def merge_dic(*dic_args):
    result = {
    
    }
    for dic in dic_args:
        result.update(dic)
    return result

调用方式 dicgoal = merge_dic(dic1,dic2,dic3)

示例

dic1 = {
    
    '1':2,'3':'a'}
dic2 = {
    
    'a':'c','b':4}
dic3 = {
    
    'a':7,'c':8}

def merge_dic(*dic_args):
    result = {
    
    }
    for dic in dic_args:
        result.update(dic)
    return result
    
dicgoal = merge_dic(dic1,dic2,dic3)
print(dicgoal)

输出

{‘1’: 2, ‘3’: ‘a’, ‘a’: 7, ‘b’: 4, ‘c’: 8}

猜你喜欢

转载自blog.csdn.net/qq_43657442/article/details/108267443