Antoon Pardon wrote:
Well IMO there are two sides in this argument. The first is whether or not python allows mutable keys. The second is whether or not limiting keys to immutables in dictionaries provides a performance gain.
The problem is that you don't understand what dicts are typically used for. Because of the nonliniarity in dict lookups, dicts are used for optimisation.
I actually think it's the most important tool for optimising Python code.
If dicts allowed mutable keys, a dict would need to run code that corresponds to::
def has_key(key): for key in self.keys(): if a_key == key: return True return False
Using immutable keys, a code can be generated for the key, that can be efficiently stored in something like a binary tree.
This makes lookup *very much* faster, and is the speed concern that Python programmers care about.
Not the time taken to convert a list into a tuple.
--
hilsen/regards Max M, Denmark
http://www.mxm.dk/ IT's Mad Science -- http://mail.python.org/mailman/listinfo/python-list