Dictionaries with tuples or tuples of tuples
Dave Angel
davea at davea.name
Mon Feb 18 22:14:05 EST 2013
On 02/18/2013 09:54 PM, Mitya Sirenef wrote:
> On 02/18/2013 09:17 PM, Jon Reyes wrote:
>> Thanks Dave and Mitya for enlightening me about dictionaries. I'm
>> still confused about this though:
> >
> > " so that if two
> > key objects are equal, they stay equal, and if they differ, they stay
> > different. "
> >
> > What does this mean? I won't be comparing key objects with one
> another. Also, when I had two keys with the same value the value of the
> other key disappeared so I assume in runtime if there are multiple keys
> of the same value only the last one will appear.
>
> You won't be, but dict will.
>
> Dict is by definition a mapping where a value is assigned to a unique
> key. If you have two keys and two values, and then change one key to
> be equal to the second key, that's not kosher, because which value it's
> supposed to return when you try to get it by that key?
>
> So in effect, key's hash value should not change. If key is immutable,
> you can be certain that it's hash value will not change. If it's
> mutable, you have to make sure not to change the key in a way that'd
> make its hash value different than it was.
>
> -m
>
It's a little stronger than that, since equal hashes cannot assure equal
data. The equality of each object pair in a dict must not change over
time, not just the hashes of the individual objects.
--
DaveA
More information about the Python-list
mailing list