Lookup as a hash map
A dict maps keys to values via a hash table. When you write d["name"], Python hashes the key, finds the bucket that hash points to, and returns the value stored there. The hashing means lookup is amortized O(1), regardless of how many keys are in the dict.
Keys must be hashable, which in practice means immutable. Strings, numbers, and tuples work as keys. Lists and other dicts do not, because their hash would change if their contents changed.
Dict is the data structure you reach for whenever you need to look something up by name. Counting word frequencies, caching results, configuring options, structuring records returned from an API: all dicts.