python - 为什么我不能使用 '+' 在 Python 中合并字典?
问题描述
我是一个新的 Python 用户,我会有一些疑问。
我知道+
运算符不仅执行数字之间的求和,还执行字符串或列表之间的连接。为什么字典不允许这样做?
解决方案
dicts的运算符将如何+
处理重复的键?例如
>>> {'d': 2} + {'d': 1}
也许像一个Counter
?
>>> from collections import Counter
>>> Counter({'d': 2}) + Counter({'d': 1})
Counter({'d': 3})
或者像一个defaultdict
?
{'d': [2, 1]}
或者覆盖第一个键dict.update
?
>>> d = {'d': 2}
>>> d.update({'d':1})
>>> d
{'d': 1}
还是只留下第一把钥匙?
{'d': 2}
说白了就是模棱两可!
另见PEP 0584:
使用加法运算符
这个 PEP 最初是作为 dict 添加的提议开始的,使用 + 和 += 运算符。事实证明,这一选择极具争议性,许多人对运营商的选择持强烈反对意见。有关详细信息,请参阅 PEP 的先前版本和邮件列表讨论。
注意 Guido 本人确实考虑并讨论了这一点;另请参阅issue36144。
推荐阅读
- python - Append Row to Google Spreadsheet-->TypeError: keys must be a string
- python - django.core.exceptions.ImproperlyConfigured:加载 psycopg2 模块时出错:DLL 加载失败:找不到指定的模块
- android - React-Native Promise
- java - 如何使用 Camel 在 AWS sqs 上发送消息属性和消息正文?
- spring-boot - 科特林测试;如何使用抽象测试容器类
- elasticsearch - 如何在grafana中根据用户显示elasticsearch的术语?
- react-native - 反应原生。滚动视图高度
- amazon-web-services - Kubernetes 工作节点上的服务之间的连接失败
- html - Flash 脚本在 Chrome 上的 html 中不起作用
- java - 未经检查的演员表:'java.io.Serializable' 到 'java.util.ArrayList
'