3 ms·
I'm not sure if you are asking about Python, or Ruby. Anyway, both languages use value-based hashing for dictionaries. I am not a Rubyist, but I guess you are
by kilink 10y ago
I'm not sure if you are asking about Python, or Ruby.
Anyway, both languages use value-based hashing for dictionaries. I am not a Rubyist, but I guess you are just expected to not mutate the keys? Ruby's dictionary implementation also has a rehash method to deal with this case [1], if for some reason you are purposely mutating the keys I suppose...
[1] http://docs.ruby-lang.org/en/2.0.0/Hash.html#method-i-rehash http://docs.ruby-lang.org/en/2.0.0/Hash.html#method-i-rehash
- catnaroek 10y ago> I'm not sure if you are asking about Python, or Ruby. Ruby, since you said it allows mutable keys in dictionaries. > Anyway, both languages use value-based hashing for dictionaries. Neither Python nor Ruby has compound values. Object identities are primitive values. > but I guess you are just expected to not mutate the keys? I guess C programmers are expected not to use memory after they free it.