Le Tue, 10 Sep 2013 15:09:56 +0200, Hrvoje Niksic <hrvoje.nik...@avl.com> a écrit : > On 09/10/2013 02:24 PM, Paul Moore wrote: > >>>> td['FOO'] = 42 > >>>> td['foo'] = 32 > >>>> list(td.keys()) > > > > ['FOO'] or ['foo']? Both answers are justifiable. > > Note that the same question can be reasonably asked for dict itself: > > >>> d = {} > >>> d[1.0] = 'foo' > >>> d[1] = 'bar' > >>> d > {1.0: 'bar'} > > So, dict.__setitem__ only replaces the value, leaving the original > key in place. transformdict should probably do the same, returning > 'FOO' in your example.
It's not that obvious. It's not common to rely on that aspect of dict semantics, because you will usually lookup using the exact same type, not a compatible one. I would expect very little code, if any, to rely on this. (also, I would intuitively expect the latest key to be held, not the first one, since that's what happens for values.) Regards Antoine. _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com