[Tutor] list objects are unhashable

Cédric Lucantis omer at no-log.org
Mon Jun 30 21:09:28 CEST 2008


Le Monday 30 June 2008 20:55:36 Norman Khine, vous avez écrit :
> Hello,
>
> I would like to count list items but am not 100% sure how to do it.
>
> Here is what I have so far:
>
>          for brain in brains:
>              x = getattr(brain, horizontal)
>              y = getattr(brain, vertical)
>              if x and y and (x, y) in table:
>                  table[(x, y)] += 1
>                  table[(x, '')] += 1
>                  table[('', y)] += 1
>                  table[('', '')] += 1
>
> but when I run this, I get the following error on the line:
>
> if x and y and (x, y) in table:
>
> TypeError: list objects are unhashable
>
> where:
>
> x = ['airlines-scheduled', 'airport-car-parking']
>

lists are not hashable because hashing a mutable type would be dangerous, but 
tuples are if all their items are hashable too. Just replace x by tuple(x).

-- 
Cédric Lucantis


More information about the Tutor mailing list