gpt4 book ai didi

python - 为什么字典 (dict_items) 支持并集 (__or__) 但不支持加法 (__add__)?

转载 作者:太空宇宙 更新时间:2023-11-04 08:32:39 24 4
gpt4 key购买 nike

举例说明:

>>> a = dict(eggs='eggs', spam='spam')
>>> b = dict(spam='spam', ham='ham')
>>> dict(a.items() | b.items())
{'eggs': 'eggs', 'ham': 'ham', 'spam': 'spam'}

同时...

>>> dict(a.items() + b.items())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'dict_items' and 'dict_items'

这是有原因的吗?假设加法和联合应该对字典做同样的事情是不是合理的?

在 Python 2 中,这工作得很好:

>>> dict(a.items() + b.items())
{'eggs': 'eggs', 'ham': 'ham', 'spam': 'spam'}

尽管在 Python 2 中 .items() 返回一个常规列表(与 dict_items 对比),所以这可能是偶然的。


最后,我不认为“如果键有不同的值会发生什么”——困境适用于这里,因为运算符 | 似乎并不介意(两个值之一似乎是随机选择的) ).

最佳答案

一些 dict View ( notably not dict.values ) 支持 set operations . + 不是集合操作,因此没有理由包含它。

关于python - 为什么字典 (dict_items) 支持并集 (__or__) 但不支持加法 (__add__)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51564260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com