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

你可能感兴趣的:(Python 的 dict 合并)