1

dict | dict2Python中的操作是做什么的?

我遇到了它,我不确定它实际上做了什么以及何时使用它。

4

1 回答 1

3

新的字典更新和合并运算符 (Python >= 3.9)

从 Python 3.9 开始,可以在 Python 中使用merge ( |) 和update ( |=) 运算符。它们在PEP-584中进行了描述。本质上,语义是最后一个重复键的值覆盖以前的值并成为结果字典中键的值。

这些操作符使得从两个字典中创建一个字典变得更加容易,因此它们等效于以下操作:

e = d1 | d2  # merge since Python 3.9    

相当于旧的:

# Python < 3.9

# merge - solution 1
e = d1.copy(); e.update(d2)

# merge - solution 2
e = {**d1, **d2}

和:

d1 |= d2  # merge since Python 3.9    

相当于旧的:

# Python < 3.9

# merge inplace - solution 1
d1.update(d2)

# merge inplace - solution 2
d1 = {**d1, **d2}

的优点|

  1. 跨字典、集合、列表更简单、更统一。
  2. 类型保留。特别是旧方法 2 不保留字典的类型。
  3. d1 | d2是一个表达式,而旧的方法不是可以在立即使用结果时派上用场的(例如传递参数、列表推导等)
  4. 效率(在某些情况下,不会创建临时字典,而在以前的 Python 版本中它们是)。
于 2020-06-21T12:23:15.360 回答