Python

Ошибка ключа словаря Python — руководства по Python

В этом уроке по Python мы изучим Как решить ошибки ключа словаря Python используя некоторые примеры в Python. Кроме того, мы также рассмотрим, почему Python KeyError возникает, когда ключ существует, и как избежать KeyErrors.

Что такое KeyError в словаре Python?

А KeyError в Python возникает, когда к словарю обращаются с ключом, который не существует в этом словаре. Рассмотрим следующий пример:

dictionary = {"name": "John", "age": 25}
print(dictionary["profession"])

В приведенном выше фрагменте кода при попытке распечатать dictionary["profession"] приводит к KeyError потому что ключ «профессия» не существует в словаре.

Произошла ошибка ключа словаря Python

Почему возникает KeyError, когда ключ существует?

Несмотря на существующий в словаре ключ, KeyError еще может возникнуть по разным причинам:

  1. Чувствительность к регистру: Python — это язык, чувствительный к регистру. Поэтому, ‘Ключ’ и ‘ключ’ разные. Если ваш словарь содержит ключ “Ключ” и вы пытаетесь получить к нему доступ с помощью “ключ”а KeyError будет брошен.
  2. Ведущие или конечные пробелы: Если ваш ключ словаря включает начальные или конечные пробелы, например, ‘ ключ‘, и вы попытаетесь получить к нему доступ, не включая эти пробелы, это приведет к KeyError.
  3. Неверный тип данных: Тип данных ключа также имеет значение. Например, целое число 1 не совпадает со строкой ‘1’. Если ваш ключ словаря является целым числом, и вы пытаетесь получить к нему доступ с помощью строки (или наоборот), это вызовет KeyError.

Как избежать ключевых ошибок в словаре Python

Проверить, существует ли ключ

Вы можете проверить, существует ли ключ в словаре, прежде чем обращаться к нему:

state_info = {
    "State": "California",
    "Capital": "Sacramento",
    "Region": "West"
}

key_to_check = "State"

if key_to_check in state_info:
    print(state_info[key_to_check])
else:
    print(f"Key '{key_to_check}' does not exist in the dictionary.")

В этом коде мы сначала проверяем, key_to_check существует в словаре Python state_info используя in оператор. Если это так, мы печатаем связанное с ним значение. Если это не так, мы печатаем сообщение о том, что ключ не существует.

Выход:

Ошибка ключа словаря Python

Использовать get() Метод

Python предоставляет get() метод, возвращающий значение ключа, если он существует в словаре. Если ключ не существует, он возвращает значение по умолчанию:

car_info = {
    "Make": "Ford",
    "Model": "Mustang",
    "Year": 2018
}

key_to_check = "Engine"

print(car_info.get(key_to_check, "Key does not exist in the dictionary."))

Здесь мы пытаемся получить доступ к значению ключа “Двигатель” используя get() метод. С “Двигатель” не существует в car_info, get() метод возвращает предоставленное значение по умолчанию, «Ключ не существует в словаре».

Выход:

Пример ошибки ключа словаря Python

Использовать dict.setdefault()

setdefault() метод возвращает значение ключа (если ключ находится в словаре). Если нет, он вставляет ключ со значением в словарь Python.

book_info = {
    "Title": "To Kill a Mockingbird",
    "Author": "Harper Lee",
    "Publication Year": 1960
}

key_to_check = "Pages"

value = book_info.setdefault(key_to_check, "Unknown")
print(value)
print(book_info)

С «Страницы» не существует в book_info, setdefault() вставки «Страницы» со значением “Неизвестный” в словарь, а затем возвращает «Неизвестный”. book_info Словарь Python теперь включает новую пару ключ-значение «Страницы»: «Неизвестно».

Выход:

Как решить ошибки ключа словаря Python

Обработка KeyError с помощью обработки исключений

В Python вы можете использовать блок try-except для перехвата исключений и обработки ошибок. Это также применимо для KeyError.

team_info = {
    "Team Name": "Los Angeles Lakers",
    "Founded": 1947,
    "Championships": 17
}

key_to_check = "League"

try:
    print(team_info[key_to_check])
except KeyError:
    print(f"Key '{key_to_check}' does not exist in the dictionary.")

В этом случае мы пытаемся вывести значение «Лига» от team_info. Потому что ключ «Лига» не существует, а KeyError был бы повышен. Но из-за блока try-except Python выполняет блок exclude, выводя сообщение о том, что ключ не существует.

Выход:

Как решить пример ошибок ключа словаря Python

Заключение

В то время как KeyError обычно указывает на то, что указанный ключ не существует в словаре, иногда его можно вызвать, даже если ключ кажется существующим по таким причинам, как чувствительность к регистру, начальные или конечные пробелы и неправильный тип данных.

Несколько методов, таких как использование условных проверок, get(), setdefault()и обработка исключений могут использоваться для предотвращения этой ошибки. Понимание этих ловушек и решений может помочь написать более надежный и безошибочный код Python.

Вы также можете проверить следующие учебные пособия по Python.


Ссылка на источник

Похожие статьи

Кнопка «Наверх»