Playground / How a dict Stores Keys

Hash, probe, collide

How a dict Stores Keys

Interactive lab

Try it: How a dict Stores Keys

How a dictionary turns a key into a slot with a hash, what happens on a collision, why deleted keys leave a marker, and why the table grows.

How it works

  1. hash(key) gives a number; hash % table size gives the key's home slot.
  2. If that slot is taken by another key (a collision), probe the next slot.
  3. Deleting leaves a DELETED marker so lookups keep probing past it.
  4. When more than 2/3 of the slots are used, the table doubles and every key is re-inserted.

Default run (5 steps): A dict with 3 keys in 8 slots. Choose an operation. Example: d["mango"] = 5. … Done. 4 keys in 8 slots.

Simplified: Uses a small educational hash (Python's real string hash is randomised per run) and simple linear probing; CPython's probe order is more elaborate.

Educational simulation

Loading the simulation…