【问题标题】:(dict | dict 2) - how python dictionary alternative operator works?(dict | dict 2) - python 字典替代运算符如何工作?
【发布时间】:2020-06-21 12:23:15
【问题描述】:

dict | dict2 操作在 Python 中的作用是什么?

我遇到过它,但我不确定它的实际作用以及何时使用它。

【问题讨论】:

标签: python python-3.x dictionary operators python-3.9


【解决方案1】:

新的字典更新和合并运算符(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}

|的优势

  1. 更简单、更统一的字典、集合、列表。
  2. 类型保留。特别是旧方法 2 不保留字典的类型。
  3. d1 | d2 是一个表达式,旧的方法并不适用,只要立即使用结果(例如传递参数、列表推导等)就可以派上用场
  4. 效率(在某些情况下,不会创建临时字典,而在以前的 Python 版本中是这样)。

【讨论】:

  • 我认为您的意思是在第二部分显示|= 运算符,对吧?不过,在“And:”之后的代码行中,您编写的代码与第一行相同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-13
  • 2017-12-27
相关资源
最近更新 更多