Le Tue, 10 Sep 2013 15:09:56 +0200, Hrvoje Niksic <hrvoje.niksic at 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.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4