При чтении dictionary[key] для отсутствующего ключа возникает KeyError. Если отсутствие ожидаемо, можно проверить key in dictionary или использовать get() с подходящим значением по умолчанию.
Какое исключение возникает при обращении к несуществующему ключу словаря?
При чтении dictionary[key] для отсутствующего ключа возникает KeyError. Если отсутствие ожидаемо, можно проверить key in dictionary или использовать get() с подходящим значением по умолчанию.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
При чтении dictionary[key] для отсутствующего ключа возникает KeyError. Если отсутствие ожидаемо, можно проверить key in dictionary или использовать get() с подходящим значением по умолчанию.
Например, {'a': 1}['b'] вызовет KeyError, а {'a': 1}.get('b') вернёт None. Если None является допустимым значением, применяют отдельный sentinel, чтобы отличить его от отсутствия. setdefault() не просто читает: он может добавить ключ. Не стоит ловить KeyError вокруг слишком большого блока, иначе можно скрыть другую ошибку обращения к словарю.