Guido van Rossum <guido@python.org> writes: >> > Why? You haven't given us much of a clue about your use case. >> >> I did eventually, in another posting... > > I have scoured the archives, but have not found your exposition of why > you would want this. I only found the source of your > misunderstanding. > > So I repeat the question (out of honest curiosity only): why would you > want this? Sorry, it seems it was a reply to an off-list reply: ----------- sismex01@hebmex.com writes: >> Anyone want to tell me it's a bad idea? It seems like the more useful >> of the two possible behaviors to me. >> > > I believed hashing was done by value and not necessarily by > object identity? Absolutely. The point is that two keys which compare equal may not neccessarily be strictly equivalent. I am using a dict which stores the same such object as both the key and the value of each entry. It basically implements a set which uses only a part of a value object's data for key comparison and hashing. A fairly common scenario. For any given set of key it is important to be able to find the value that is currently in the set. When I replace the value for that key, I could write: d[x] = x But with no guarantees, the old value object won't be reclaimed since it is still referenced as the key. To reclaim the reference, I need del d[x] d[x] = x Seems silly to me. --- BTW, this is not a big deal for me; I don't use Python for work where speed is critical anyway. A related issue is that I think there probably ought to be a deldefault method which removes the key if it exists in the dict and returns the k,v pair. Regards, -- 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