小编典典

为什么OrderedDict的值不相等?

python

使用Python 3:

>>> from collections import OrderedDict
>>> d1 = OrderedDict([('foo', 'bar')])
>>> d2 = OrderedDict([('foo', 'bar')])

我想检查是否相等:

>>> d1 == d2
True
>>> d1.keys() == d2.keys()
True

但:

>>> d1.values() == d2.values()
False

您知道为什么值不相等吗?

我已经使用Python 3.4和3.5进行了测试。


提出这个问题之后,我在Python-Ideas邮件列表中发布了更多详细信息:

https://mail.python.org/pipermail/python-
ideas/2015-December/037472.html


阅读 215

收藏
2020-12-20

共1个答案

小编典典

在Python 3中,dict.keys()dict.values()返回特殊的可迭代类-
分别为acollections.abc.KeysView和a
collections.abc.ValuesView。第一个继承__eq__自的方法set,第二个使用默认值object.__eq__测试对象身份。

2020-12-20