title: True and 1 and 1.0 evaluated to be same in python dictionaries
body: <p>Can anyone explain this behaviour of python dictionaries?</p>
  
  <pre><code>d = {}
  d[True] = 'Magic'
  d[1] = 'Cool'
  d[1.0] = 'Hello'
  print(d)
  
  # {True: 'Hello'}
  </code></pre>
  
  <p>Why does it not print all the other (key, value) pairs?</p>
  
  <p>Why does True, 1 and 1.0 is evaluated to be the same?</p>