On 5/2/20 5:13 PM, Serhiy Storchaka wrote: > 02.05.20 23:32, Alex Hall пише: >> On Sat, May 2, 2020 at 9:51 PM Serhiy Storchaka <storch...@gmail.com >> <mailto:storch...@gmail.com>> wrote: >> 02.05.20 21:34, Ahmed Amr пише: >> > I see there are ways to compare them item-wise, I'm suggesting to >> bake >> > that functionality inside the core implementation of such indexed >> > structures. >> > Also those solutions are direct with tuples and lists, but it >> wouldn't >> > be as direct with arrays-lists/tuples comparisons for example. >> >> If make `(1, 2, 3) == [1, 2, 3]` we would need to make `hash((1, >> 2, 3)) >> == hash([1, 2, 3])`. >> >> >> Would we? Is the contract `x == y => hash(x) == hash(y)` still >> required if hash(y) is an error? What situation involving dicts could >> lead to a bug if `(1, 2, 3) == [1, 2, 3]` but `hash((1, 2, 3))` is >> defined and `hash([1, 2, 3])` isn't? >> >> The closest example I can think of is that you might think you can do >> `{(1, 2, 3): 4}[[1, 2, 3]]`, but once you get `TypeError: unhashable >> type: 'list'` it'd be easy to fix. > > You are probably right. > > Here is other example: if make all sequences comparable by content, we > would need to make `('a', 'b', 'c') == 'abc'` and `hash(('a', 'b', > 'c')) == hash('abc')`. It may be deifficult to get the latter taking > into account hash randomization. Doesn't it also imply that ('a',) == 'a' and that you couldn't get a dict to use both of these as keys?
-- Richard Damon _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/TWLVKAOHBHP7UP5SKB6B6OFB2TI6LTRK/ Code of Conduct: http://python.org/psf/codeofconduct/