[Tutor] TypeError: dict objects are unhashable

Mark Tolonen metolone+gmane at gmail.com
Sat Mar 14 15:57:06 CET 2009


<qsqgeekyogdty at tiscali.co.uk> wrote in message 
news:16014207.1237036582618.JavaMail.root at ps26...
> hi,
> i have a list which contains duplicate dictionaries.
>
> how do i extract the unique items out?
>
> l1 = [{'a': 'ddd'}, {'a': 'ddd'}, {'b': 'eee'}, {'c': 'ggg'}]
> set(l1)
> TypeError: dict objects are unhashable
>
> but,
>>>> {'a': 'ddd'} == {'a': 'ddd'}
> True

How about:

>>> l1 = [{'a': 'ddd'}, {'a': 'ddd'}, {'b': 'eee'}, {'c': 'ggg'}]
>>> [dict(n) for n in set(tuple(n.items()) for n in l1)]
[{'c': 'ggg'}, {'b': 'eee'}, {'a': 'ddd'}]

-Mark




More information about the Tutor mailing list