Python для новичковКоллекцииСловарь: создание и базовые операции

Словарь: создание и базовые операции

Уроки курсаСловарь: создание и базовые операции

Чтение значений: d[key] и KeyError

Чтобы получить значение из словаря, используют квадратные скобки — тот же синтаксис, что и у списков, только вместо числового индекса пишут ключ:

person = {'name': 'Анна', 'age': 25, 'city': 'Москва'}

print(person['name'])  # Анна
print(person['age'])   # 25

Python находит ключ в словаре и возвращает связанное с ним значение. Порядок поиска не зависит от размера словаря — доступ по ключу работает быстро вне зависимости от того, сколько пар в словаре.

Когда возникает KeyError. Если написать ключ, которого в словаре нет, Python выбросит исключение KeyError:

print(person['phone'])  # KeyError: 'phone'

Сообщение об ошибке содержит имя отсутствующего ключа — это удобно для отладки. KeyError не означает, что со словарём что-то сломалось; это просто сигнал: «такого ключа здесь нет».

Важно понять, что Python не возвращает None и не пропускает ошибку молча — он останавливает выполнение программы. Это поведение намеренное: лучше упасть с понятным сообщением, чем продолжить работу с None там, где ожидалось реальное значение.

Как проверить ключ до обращения. Один из способов избежать KeyError — сначала убедиться, что ключ существует, с помощью оператора in:

if 'phone' in person:
    print(person['phone'])
else:
    print('Телефон не указан')

Оператор in для словаря проверяет именно ключи, а не значения. Выражение 'Анна' in person вернёт False, потому что 'Анна' — это значение, а не ключ.

Проверка через in перед d[key] работает, но требует двух строк. В следующей секции разберём метод get(), который решает ту же задачу компактнее.