[Tutor] TypeError: dict objects are unhashable

Lie Ryan lie.1296 at gmail.com
Sun Mar 15 12:40:10 CET 2009


Emile van Sebille wrote:
> Mark Tolonen wrote:
>>>>> [dict(n) for n in set(tuple(n.items()) for n in l1)]
> 
> Anyone know if the ordered items for two different dicts where dicta == 
> dictb is guaranteed the same?  I know the ordering is unspecified but 
> you can depend on the sequence of keys matching data and I think it'll 
> also match items.
> 
> but for all DA's and DB's below, is that true?
> 

Considering how dictionary is implemented, I don't think so. The 
dictionary is internally implemented as a hash table, and two dictionary 
with identical items may have different sized hash table, the algorithm 
guarantees efficient usage of memory (it resizes when it's too small or 
too big). On a resize, the hashes are recalculated and the ordering 
rescrambled.



More information about the Tutor mailing list