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.
_______________________________________________
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/BT63PQZS7Z5S4DZAYMSCEVGKI35I7FYW/
Code of Conduct: http://python.org/psf/codeofconduct/