On Fri, Dec 18, 2015 at 8:07 PM, Franklin? Lee <leewangzhong+python@gmail.com> wrote:
If this were lists, then a lack of transitivity of elements would mean
a lack of transitivity for lists of those elements. You get what you
put in.

But since dict views are unordered collections, a lack of transitivity
for elements would mean INCONSISTENCY: the comparison of two views as
multisets would depend on the exact order of comparison. Unless you
are willing to compare everything to everything else in the worst
case.

Honestly, I think it's fine if an operation like == for a collection uses an algorithm that just assumes the items' comparison is transitive, and if it isn't, you still get what you put it (i.e. it's still like a sewer :-). It's the same with sort() -- if the comparison is unreasonable the sort still terminates, just not with the items in sorted order.

--
--Guido van Rossum (python.org/~guido)