Проверка существования ключа в словаре Python является распространенной операцией, используемой во многих сценариях. Например, если вы попытаетесь получить доступ к несуществующему значению ключа через []
, то получите ошибку KeyError. Чтобы избежать этого, можно проверить существование ключа. Таким образом вы не только справитесь с этой ошибкой, но и предотвратите неожиданное поведение кода при выполнении любой операции над словарем.
В этом уроке мы рассмотрим четыре наиболее часто используемых способа проверки существования ключа в словаре на языке Python. Мы также рассмотрим синтаксис каждого метода и продемонстрируем их на примерах. Давайте начнем!
Друзья, подписывайтесь на наш телеграм канал Pythonist. Там еще больше туториалов, задач и книг по Python.
Техника 1. Оператор in
В Python оператор in
вместе с if
может быть использован для проверки наличия определенного ключа в словаре.
Оператор in
в Python, в основном, используется для проверки на принадлежность. Он может проверить, содержится ли определенный элемент или значение в определенной последовательности, такой как список, кортеж, словарь и так далее.
Синтаксис:
if value in iterable:
Пример:
inp_dict = {'Python': "A", 'Java':"B", 'Ruby':"C", 'Kotlin':"D"} search_key = 'Ruby' if search_key in inp_dict: print("The key is present.") else: print("The key does not exist in the dictionary.") # Вывод: # The key is present.
Здесь мы использовали оператор if
вместе с оператором in
для проверки наличия или отсутствия заданного ключа 'Ruby'
в нашем словаре. Кроме того, если необходимо проверить несколько ключей, вы можете реализовать цикл for
.
Техника 2. Метод keys()
Встроенный в Python метод keys()
может быть использован для проверки наличия ключа в существующем словаре.
Синтаксис:
dict.keys()
Метод keys()
вызывается без аргументов и возвращает объект, представляющий собой список всех ключей, присутствующих в конкретном входном словаре.
Чтобы проверить, есть ли в словаре определенный ключ, вместе с методом keys()
можно использовать оператор if
. Таким образом мы сравним искомый ключ со списком ключей, возвращаемым методом keys()
. Если ключ присутствует, выполнится инструкция в разделе if
, в противном случае выполнится инструкция в разделе else
.
Пример 1:
inp_dict = {'Python': "A", 'Java':"B", 'Ruby':"C", 'Kotlin':"D"} search_key = 'Ruby' if search_key in inp_dict.keys(): print("The key is present.") else: print("The key does not exist in the dictionary.") # Вывод: # The key is present.
Пример 2:
inp_dict = {'Python': "A", 'Java':"B", 'Ruby':"C", 'Kotlin':"D"} search_key = 'Cpp' if search_key in inp_dict.keys(): print("The key is present.") else: print("The key does not exist in the dictionary.") # Вывод: # The key does not exist in the dictionary.
Техника 3. Метод get()
Метод Python get()
может быть использован для проверки наличия конкретного ключа в словаре.
Этот метода фактически возвращает значение, связанное с ключом, если ключ присутствует в словаре. В противном случае возвращается значение по умолчанию — None
.
Синтаксис:
dict.get(key, default=None)
Мы передаем искомый ключ в качестве аргумента методу get()
, и если нужного ключа в словаре нет, метод возвращает None
, а если есть, то мы получим значение, хранимое в данном ключе.
Пример:
inp_dict = {'Python': "A", 'Java':"B", 'Ruby':"C", 'Kotlin':"D"} if inp_dict.get('Python')!=None: print("The key is present.") else: print("The key does not exist in the dictionary.") # Вывод: # The key is present.
Но будьте осторожны: если в словаре будет ключ, но со значением None
, проверка все равно провалится. Для таких сценариев стоит использовать другое значение параметра по умолчанию, либо вообще выбрать другой метод проверки.
Техника 4. Метод has_key()
Примечание: метод has_keys()
был исключен из Python версии 3 и выше.
Метод Python has_key()
проверяет, имеется ли в dict определенный ключ. Если ключ в словаре есть, метод возвращает True, в противном случае — False.
Синтаксис:
dict.has_keys(key)
Пример:
inp_dict = {'Python': "A", 'Java':"B", 'Ruby':"C", 'Kotlin':"D"} search_key = 'Kotlin' if inp_dict.has_key(search_key): print("The key is present.") else: print("The key does not exist in the dictionary.") # Вывод: # The key is present.
Заключение
Словарь — это структура данных, которая содержит данные в виде пар ключ-значение. В этом учебном пособии мы на конкретных примерах рассмотрели несколько способов проверить, есть ли определенный ключ в словаре.
Мы проверяли с помощью оператора in
, а также методов keys()
, get()
и has_key()
. Каждый из подходов имеет свои преимущества и подходит для различных сценариев. Зная это, вы сможете эффективно проверять, существует ли ключ в словаре.
Перевод статьи «4 Easy Techniques to Check if Key Exists in a Python Dictionary».