【发布时间】:2020-06-21 12:23:15
【问题描述】:
dict | dict2 操作在 Python 中的作用是什么?
我遇到过它,但我不确定它的实际作用以及何时使用它。
【问题讨论】:
-
仅供参考:明确鼓励您提出并回答您自己的问题:stackoverflow.blog/2011/07/01/…
标签: python python-3.x dictionary operators python-3.9
dict | dict2 操作在 Python 中的作用是什么?
我遇到过它,但我不确定它的实际作用以及何时使用它。
【问题讨论】:
标签: python python-3.x dictionary operators python-3.9
新的字典更新和合并运算符(Python >= 3.9)
从 Python 3.9 开始,可以在 Python 中使用 merge (|) 和 update (|=) 运算符。它们在PEP-584 中进行了描述。本质上,语义是最后一个重复键的值会覆盖以前的值并成为结果字典中键的值。
这些操作符使得从两本中制作一本字典变得更加容易,因此它们等同于以下操作:
e = d1 | d2 # merge since Python 3.9
相当于older:
# 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
相当于older:
# Python < 3.9
# merge inplace - solution 1
d1.update(d2)
# merge inplace - solution 2
d1 = {**d1, **d2}
|的优势
d1 | d2 是一个表达式,旧的方法并不适用,只要立即使用结果(例如传递参数、列表推导等)就可以派上用场【讨论】:
|= 运算符,对吧?不过,在“And:”之后的代码行中,您编写的代码与第一行相同。