These represent finite sets of objects indexed by nearly
arbitrary values. The only types of values not acceptable as keys
are values containing lists or dictionaries or other mutable types
that are compared by value rather than by object identity, the
reason being that the efficient implementation of dictionaries
requires a key's hash value to
remain constant. Numeric types used for keys obey the normal rules
for numeric comparison: if two numbers compare equal (e.g.,
1 and 1.0) then they can be used
interchangeably to index the same dictionary entry.
Dictionaries are mutable; they can be created by the
{...} notation (see dictionary-displays).
The extension modules dbm, gdbm, and bsddb provide additional examples of mapping types.