title: How python dictionary operations work at low level?
body: <p>Python dictionaries use hashing to get O(1) complexity for certain operations.</p>
  
  <p>I know a hash is a function that converts an inmutable object into a unique identifier of a certain length of bits.</p>
  
  <p>However I still dont' understand how certain operations work at a low level.</p>
  
  <p>At a low level, I could understand that if the hash function would translate a key into a memory position, then getting the dictionary value for a certain key would be just hashing that key, going to that memory position and retrieving the value. But I suspect this is not how it really works, basically because the entire range of possible hashes would have to be allocated into memory.</p>
  
  <p>Checking if a dictionary has a certain key is also O(1), and I really don't figure out how it's done to be O(1) using hashes. Sure I have a hash, now what? I still need to check if this hash value belongs to a list of hash values right? And this is not O(1).</p>
  
  <p>Is there a tutorial or documentation where it really explains at a low level how the different operations of dictionaries involving hashes are done? </p>
  
  <p>All tutorials I found explain how to use dictionaries, but I want to know how they work.</p>
  
  <p>I'm not interested in the hashing algorithm itself, but what comes after the hash is calculated.</p>
  
  <p>Thanks</p>