Как проверить наличие ключа в словаре в Python

Проверка существования ключа в словаре Python является распространенной операцией, используемой во многих сценариях. Например, если вы попытаетесь получить доступ к несуществующему значению ключа через [], то получите ошибку KeyError. Чтобы избежать этого, можно проверить существование ключа. Таким образом вы не только справитесь с этой ошибкой, но и предотвратите неожиданное поведение кода при выполнении любой операции над словарем.

В этом уроке мы рассмотрим четыре наиболее часто используемых способа проверки существования ключа в словаре на языке 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».