title: Why can't I use a list as a dict key in python?
body: <p>I'm a bit confused about what can/can't be used as a key for a python dict.  </p>
  
  <pre><code>dicked = {}
  dicked[None] = 'foo'     # None ok
  dicked[(1,3)] = 'baz'    # tuple ok
  import sys
  dicked[sys] = 'bar'      # wow, even a module is ok !
  dicked[(1,[3])] = 'qux'  # oops, not allowed
  </code></pre>
  
  <p>So a tuple is an immutable type but if I hide a list inside of it, then it can't be a key.. couldn't I just as easily hide a list inside a module?</p>
  
  <p>I had some vague idea that that the key has to be "hashable" but I'm just going to admit my own ignorance about the technical details; I don't know what's really going on here.  What would go wrong if you tried to use lists as keys, with the hash as, say, their memory location?</p>