>>> What use case are you thinking of that this would address? >> It would allow to treat the items view as a proper set (which >> it still is). > > Can you give some examples?
You mean, actual applications where people would want to perform set operations on .items()? No - I was just trying to give a solution to the theoretical problem that Georg brought up. > I can too easily think of examples that > fail with this approach: > > d = {1: 1, 2: 2} > iv = set(d.items()) > (1, 1) in iv > > The latter expression would be False, (while it currently is True), > since (1,1) has a different hash value than Association((1, 1)). Right. Since the elements in the view/set would not be plain two-tuples, this would have to be spelled as Association((1,1)) in iv Of course, it violates the principle that things that compare equal should also hash equal; to restore that principle, one would have to make associations not compare equal to two-tuples (and then not make them a subtype anymore, either). Regards, Martin _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com