¶¶Òõ̽̽

Exceptions

Author

Clayton Cafiero

Published

2025-01-05

Exceptions

KeyError

If you try to read or pop or delete a key from a dictionary which does not exist, a KeyError is raised. This is similar to the IndexError you’ve seen in the cases of lists and tuples.

If you encounter a KeyError it means the specified key does not exist in the dictionary.

>>> furniture = {'living room': ['armchair', 'sofa', 'table'],
...              'bedroom': ['bed', 'nightstand', 'dresser'],
...              'office': ['desk', 'chair', 'cabinet']}
>>> furniture['kitchen']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'kitchen'

TypeError

If you try to add to a dictionary a key which is not hashable, Python will raise a type error:

>>> d = {[1, 2, 3]: 'cheese'}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'

Unlike IndexError which is almost always due to a programming error—and thus we do not wish to handle such exceptions—there are cases where we would wish to handle KeyError should it be raised. This will depend on context.

Copyright © 2023–2025 Clayton Cafiero

No generative AI was used in producing this material. This was written the old-fashioned way.

Reuse