Kristian Klette schrieb am 23.07.19 um 22:59: > During the sprints after EuroPython, I made an attempt at adding support for > comparing the results from `.values()` of two dicts. > > Currently the following works as expected: > > ``` > d = {'a': 1234} > > d.keys() == d.keys() > d.items() == d.items() > ``` > > but `d.values() == d.values()` does not return the expected > results. It always returns `False`. The symmetry is a bit off. > > In the bug trackers[0] and the Github PR[1], I was asked > to raise the issue on the python-dev mailing list to find > a consensus on what comparing `.values()` should do. > > I'd argue that Python should compare the values as expected here, > or if we don't want to encourage that behaviour, maybe we should > consider raising an exception. > Returning just `False` seems a bit misleading. > > What are your thoughts on the issue?
FWIW, after reading most of this thread, I do not like the idea of raising an exception for an innocent comparison. Just think of a list of arbitrary objects, including a dict values view for some reason, and you're looking for the right object in the list. Maybe in some kind of generic tool, decorator, iter-helper, or whatever, something that has to deal with arbitrary objects provided by random users, which uses "in" instead of a loop with "is" comparisons. I also kind-of like the idea of having d.values() == d.values() return True and otherwise let the comparison return False for everything else. This seems to be the only reasonable behaviour that might(!) have a use case, maybe in the same line as the argument above. I can't really see a reason for implementing anything more than that. Stefan _______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/CGRTXKDHS7GBBZY5GQ6ZM2FAVHPHJBAQ/