[Python-ideas] Fwd: Why do equality tests between OrderedDict keys/values views behave not as expected?
Franklin? Lee
leewangzhong+python at gmail.com
Fri Dec 18 22:28:52 EST 2015
On Fri, Dec 18, 2015 at 9:34 PM, Steven D'Aprano <steve at pearwood.info> wrote:
> On Fri, Dec 18, 2015 at 08:37:09AM -0800, Guido van Rossum wrote:
>
>> ValuesView is not a set because there may be duplicates. But the identity
>> thing feels odd. (Even though I designed this myself.) Maybe because values
>> may not be comparable?
>
> Right, that makes sense now, and it's even documented that value views
> are not treated as sets:
>
> https://docs.python.org/2/library/stdtypes.html#dictionary-view-objects
>
>
> I'm not sure what you mean by "values may not be comparable"? Since
> we're only talking about equality, aren't all values comparable?
>
>
> --
> Steve
See my example in the other email
(https://mail.python.org/pipermail/python-ideas/2015-December/037498.html).
That's a case where the order of comparison matters, so you can't do a
conceptual "unordered comparison" without, in the worst case,
comparing everything to everything else. This is due to custom __eq__
(by OrderedDict, for irony's sake): a == b and b == c does not mean a
== c.
More information about the Python-ideas
mailing list