可能遇到以下几个情况:
字典之间无数据冲突
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 扫码入群: