Python 的 dict 合并

可能遇到以下几个情况:

字典之间无数据冲突

x = { 'a' : 1, 'b' : 2 }
y = { 'c': 3, 'd' : 4 }

# python 3.5+ merge dict
z = { **x , **y }    # result: { 'a' : 1, 'b' : 2,  'c': 3, 'd' : 4 }

# python 2.x merge dict
z = dict(x, **y)    # result: { 'a' : 1, 'b' : 2,  'c': 3, 'd' : 4 }

字典之间有部分 key 冲突

x = { 'a' : 1, 'b' : 2 }
y = { 'c': 3, 'b' : 4 }

# python 3.5+ merge dict
z = { **x , **y }    # result: { 'a' : 1, 'b' : 4,  'c': 3 }
z1 = { **y, **x }    # result: { 'a' : 1, 'b' : 2,  'c': 3 }

# python 2.x merge dict
z = dict(x, **y)    # result: { 'a' : 1, 'b' : 4,  'c': 3 }
z1 = dict(y, **x)    # result: { 'a' : 1, 'b' : 2,  'c': 3 }

结论:

无论是通过 python3.5+ 的字典合并表达式,还是 python2.x 的字典构造函数合并字典,对于冲突的 key 的值都是从右向左进行覆盖


  • 交流可以加 QQ 群:397234385
  • 或者 QQ 扫码入群:
qq群.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。