Antoon Pardon wrote:

Demanding that users of dictioanaries somehow turn their mutable objects
into tuples when used as a key and back again when you retrieve the keys
and need the object [...]


But, you generally don't "retrieve" _keys_ from dicts. You *use* keys to retrieve *values* from a dict. The only way to get a dict to give you a key is by using the keys() method (or items() method) to give you *all* of the keys.


You say that mutating the keys inside of a dict is bad, and yet you want keys to be mutable. This seems to be an internally inconsistent position, nevermind the fact that I can't think of a case where I'm likely to "retrieve" a key from a dict, modify it, and then put it back. (I can think of endless cases where I'd want to do that with *values*, but not with keys...)

(And if dicts were somehow changed so that keys were copied when added to a dict, just so that every once in a while someone might be able to avoid a few conversions to/from tuple, then you're adding the overhead of an object copy to *every* dict insertion, thus slowing down (possibly by a significant amount) a large proportion of Python operations. How is that a gain?)

Jeff Shannon
Technician/Programmer
Credit International

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to