On Fri, Dec 18, 2015 at 9:34 PM, Steven D'Aprano
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.