[Python-Dev] Mundane dict __setitem__...
Samuele Pedroni
pedronis@bluewin.ch
Tue, 03 Jun 2003 14:22:15 +0200
At 08:09 03.06.2003 -0400, David Abrahams wrote:
>I am about to write some code which relies on the following:
>
> x = (1,2,3)
> y = (1,2,3)
> d = {}
> d[x] = 1
> d[y] = 1
> assert d.keys()[0] is y
>
>In other words, when you do d[k] = v it replaces both v *and* k in the
>dict. I couldn't find it documented anywhere but the source. I
>submitted a doc patch which enshrines that behavior, but since Guido
>doesn't always know what's in the doc I wanted to make sure it was
>considered reasonable.
>
>Anyone want to tell me it's a bad idea? It seems like the more useful
>of the two possible behaviors to me.
that's not the case with Jython, i.e. the assert will fail in Jython.
Dicts are equality not identity dicts so both behavior, as I see it, are
fine. In the end what happens with the fragment is unspecified.
regards.