Antoon Pardon wrote: >> how would you implement a dictionary where the keys could change, without >> any performance penalty compared to the current implementation? > > The performace gained by using tuples as keys in dictionaries is > entirely illusional. > > Sure the fact that you use a tuple which is immutable, makes that > you can put the key directly in the dictionary instead of a copy > and that will gain you some performance. > > But this performance gain can be more than offset by other code > in the program. > > Suppose you need a list/tuple as a key and most opperation you > will do on those keys will be appends and pops. You now have the > itwo choices > > 1) Always convert your lists to tuples on key entries > and keys accesses, which will mean more copying than when a > copy of a key would have been made on key entry. > > 2) Simulate appends and pops by tuple operations which can also > require more copying than was gained by using tuples as key
sorry, but I don't understand your reply at all. are you saying that dictionaries could support mutable keys (e.g lists) by making a copy of the key? how would such a dictionary pick up changes to the original key object? (I'm talking about the key stored in the dictionary, not the key you're using to look things up). </F> -- http://mail.python.org/mailman/listinfo/python-list