Guido van Rossum <guido@python.org> writes: >> 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. > > Bad idea. There are no guarantees whether the key will be updated or > not. Too bad. It's better to update the key. > (There is also no rule that forbids the compiler from making x > and y point to the same object, BTW.) I knew that part. Note that my test doesn't rely on having distinct identities. -- Dave Abrahams Boost Consulting www.boost-consulting.com
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