python3.9中字典合并操作

Python 3.9引入|和|=操作符简化字典合并:|创建新字典并覆盖重复键,|=就地更新原字典;相比{d1,d2}和update()更直观,仅支持字典类型且需Python 3.9+。

Python 3.9 引入了新的字典合并操作符,让字典的合并更加简洁直观。你可以使用 | 操作符来合并两个字典,也可以用 |= 来就地更新字典。

使用 | 合并两个字典

| 操作符会创建一个新字典,包含左右两个字典的键值对。如果键有重复,右边字典的值会覆盖左边的。

示例:

dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
merged = dict1 | dict2
print(merged) # 输出: {'a': 1, 'b': 3, 'c': 4}

使用 |= 更新现有字典

|= 可以直接修改原字典,把另一个字典的内容“合并进来”,类似 update() 方法。

示例:

dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
dict1 |= dict2
print(dict1) # 输出: {'a': 1, 'b': 3, 'c': 4}

与其他方法对比

  • 以前常用 {**dict1, **dict2} 实现合并,3.9 后推荐使用 |,更清晰。
  • dict1.update(dict2) 会修改原字典,相当于 |=;而 | 不改变原对象。
  • 这些操作只支持字典类型之间合并。如果和非字典类型使用 |,会报错。

基本上就这些。语法更直观,适合写简洁的配置合并或参数覆盖场景。注意版本要求是 Python 3.9+,低版本不支持。