Оригінальна публікація: How to Check if a Key Exists in a Dictionary in Python – Python Dict Has Key

Python — одна з найпопулярніших мов програмування сьогодення. Її використовують в багатьох галузях, а найчастіше в науці про дані, машинному навчанні та веброзробці.

Під час програмування на Python ви часто використовуватимете різні структури даних, одною з яких є словник.

Словник — це колекція пар ключ-значення, яка дозволяє зберігати та знаходити дані.

При роботі зі словниками часто потрібно перевірити, чи існує ключ. Це особливо корисно, якщо ви працюєте з великими наборами даних або вам потрібно отримати значення на основі ключа.

У цій публікації ми розглянемо різні способи, якими можна перевірити наявність ключа в словнику в Python. Розпочнемо!

Спосіб 1: оператор in

Щоб перевірити наявність ключа в словнику, можна використати оператор in. Це один з найпряміших способів. Він поверне True, якщо ключ існує, або False, якщо ні.

Ось приклад його використання:

мій_словник = {'ключ1': 'значення1', 'ключ2': 'значення2', 'ключ3': 'значення3'}

if 'ключ1' in мій_словник:
    print("У словнику є ключ.")
else:
    print("У словнику немає ключа.")

У прикладі вище ми перевіряємо, чи ключ1 існує в мій_словник. Якщо так, то буде відтворено повідомлення про підтвердження. Якщо ні, то буде надруковано повідомлення про відсутність ключа.

Спосіб 2: метод dict.get()

Метод dict.get() поверне значення, повʼязане із заданим ключем, якщо він існує, або None, якщо ключ не знайдено.

мій_словник = {'ключ1': 'значення1', 'ключ2': 'значення2', 'ключ3': 'значення3'}

if мій_словник.get('ключ1') is not None:
    print("У словнику є ключ.")
else:
    print("У словнику немає ключа.")

У прикладі вище ми використали метод dict.get(), щоб отримати значення, повʼязане з ключ1. Якщо заданий ключ наявний, то мій_словник.get('ключ1') is not None оцінюється як True, отже заданий ключ наявний.

Спосіб 3: обробка винятків

Обробка винятків дозволяє спочатку спробувати та отримати значення ключа, а потім, якщо виникне виняток KeyError, обробить його.

мій_словник = {'ключ1': 'значення1', 'ключ2': 'значення2', 'ключ3': 'значення3'}

try:
    value = мій_словник['ключ1']
    print("У словнику є ключ.")
except KeyError:
    print("У словнику немає ключа.")

Код вище дозволяє отримати значення, повʼязане з ключ1. Якщо він існує, код в межах try виконується та друкується повідомлення. А якщо виникає виняток KeyError, значить ключа не існує та виконується код в межах except.

Додатково

  • Наявність ключа vs значення
    Методи, які ми розглянули вище, перевіряють лише наявність ключа. Якщо потрібно перевірити наявність значення, потрібно ітерувати над значеннями за допомогою метода, наприклад, dictname.values().
  • Ефективність
    Різні методи надають різну ефективність, що залежить від розміру словника. Загалом оператор in підходить для малих і середніх словників, а dict.get() та обробка винятків — для великих.
  • Поєднання методів
    Під час роботи з методами словника Python добре те, що їх можна поєднувати. Наприклад, можна використати оператор in, щоб перевірити наявність словника, та dict.get(), щоб отримати його значення.
  • Використання dict.setdefault()
    Це дозволить перевірити, чи існує ключ, та поверне значення, якщо ключ наявний. Якщо ключ відсутній, ви можете встановити значення за замовчуванням під час його додавання до словника.

Щоб комфортно працювати зі словниками в Python, достатньо зрозуміти додаткову інформацію вище та практикуватись над використанням цих методів.