Как проверить, содержит ли словарь определенный ключ в Python

PythonPythonBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь проверять, содержит ли словарь в Python определенный ключ. Словарь, который хранит данные в виде пар "ключ-значение", является фундаментальной структурой данных.

В этом практическом занятии (лабораторной работе) вы научитесь исследовать ключи словаря с использованием метода .keys() и преобразовывать полученный объект представления в список. Вы также узнаете, как использовать оператор in и метод get() для эффективного определения, существует ли конкретный ключ в словаре.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/ErrorandExceptionHandlingGroup(["Error and Exception Handling"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python/BasicConceptsGroup -.-> python/booleans("Booleans") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/DataStructuresGroup -.-> python/dictionaries("Dictionaries") python/ErrorandExceptionHandlingGroup -.-> python/catching_exceptions("Catching Exceptions") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/booleans -.-> lab-559503{{"Как проверить, содержит ли словарь определенный ключ в Python"}} python/conditional_statements -.-> lab-559503{{"Как проверить, содержит ли словарь определенный ключ в Python"}} python/dictionaries -.-> lab-559503{{"Как проверить, содержит ли словарь определенный ключ в Python"}} python/catching_exceptions -.-> lab-559503{{"Как проверить, содержит ли словарь определенный ключ в Python"}} python/data_collections -.-> lab-559503{{"Как проверить, содержит ли словарь определенный ключ в Python"}} end

Исследование ключей словаря

На этом этапе вы научитесь получать доступ к ключам словаря в Python. Словарь представляет собой фундаментальную структуру данных, которая хранит данные в виде пар "ключ-значение". Понимание того, как получать ключи, является важным аспектом при работе со словарями.

Сначала создадим простой словарь для работы. Откройте редактор VS Code в среде LabEx и создайте новый файл с именем dictionary_keys.py в директории ~/project.

## Content of dictionary_keys.py
my_dict = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

Теперь исследуем, как получить доступ к ключам этого словаря. В Python для этого есть метод .keys(). Добавьте следующий код в файл dictionary_keys.py:

## Content of dictionary_keys.py
my_dict = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

keys = my_dict.keys()
print(keys)

Сохраните файл и запустите скрипт с помощью следующей команды в терминале:

python dictionary_keys.py

Вы должны увидеть следующий вывод:

dict_keys(['name', 'age', 'city'])

Вывод показывает объект "dict_keys", который представляет собой объект представления (view object), отображающий список всех ключей в словаре.

Для преобразования этого объекта представления в список можно использовать функцию list(). Измените файл dictionary_keys.py следующим образом:

## Content of dictionary_keys.py
my_dict = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

keys = list(my_dict.keys())
print(keys)

Сохраните файл и запустите скрипт снова:

python dictionary_keys.py

Теперь вывод будет представлять собой список ключей:

['name', 'age', 'city']

Теперь вы можете пройти по этому списку и выполнять операции над каждым ключом. Например, вы можете вывести каждый ключ по отдельности:

## Content of dictionary_keys.py
my_dict = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

keys = list(my_dict.keys())
for key in keys:
    print(key)

Сохраните файл и запустите скрипт:

python dictionary_keys.py

Вывод будет следующим:

name
age
city

Это демонстрирует, как получить доступ к ключам словаря в Python и пройти по ним. Понимание этого концепта является важным для эффективной манипуляции и извлечения информации из словарей.

Использование оператора in

На этом этапе вы научитесь использовать оператор in для проверки наличия ключа в словаре. Оператор in представляет собой мощный инструмент для определения наличия ключа без возникновения ошибки.

Продолжим использовать словарь, который мы создали на предыдущем этапе. Если у вас нет файла dictionary_keys.py, создайте его снова в директории ~/project со следующим содержимым:

## Content of dictionary_keys.py
my_dict = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

Теперь используем оператор in для проверки, существует ли определенный ключ в словаре. Добавьте следующий код в файл dictionary_keys.py:

## Content of dictionary_keys.py
my_dict = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

if "name" in my_dict:
    print("The key 'name' exists in the dictionary.")
else:
    print("The key 'name' does not exist in the dictionary.")

Сохраните файл и запустите скрипт с помощью следующей команды в терминале:

python dictionary_keys.py

Вы должны увидеть следующий вывод:

The key 'name' exists in the dictionary.

Это подтверждает, что ключ "name" существует в словаре.

Теперь проверим наличие ключа, который не существует. Измените файл dictionary_keys.py следующим образом:

## Content of dictionary_keys.py
my_dict = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

if "country" in my_dict:
    print("The key 'country' exists in the dictionary.")
else:
    print("The key 'country' does not exist in the dictionary.")

Сохраните файл и запустите скрипт снова:

python dictionary_keys.py

Вывод будет следующим:

The key 'country' does not exist in the dictionary.

Это демонстрирует, как оператор in можно использовать для проверки наличия ключа в словаре. Это безопасный и эффективный способ определить, присутствует ли ключ, прежде чем пытаться получить его значение.

Оператор in возвращает True, если ключ существует, и False в противном случае. Вы можете использовать это булево значение в условных операторах или других логических операциях.

Проверка с использованием метода get()

На этом этапе вы научитесь использовать метод get() для безопасного доступа к значениям словаря. Метод get() позволяет получить значение, связанное с ключом, и позволяет указать значение по умолчанию, которое будет возвращено, если ключ не существует. Это предотвращает аварийное завершение программы из-за исключений KeyError.

Продолжим использовать словарь, который мы создали на предыдущих этапах. Если у вас нет файла dictionary_keys.py, создайте его снова в директории ~/project со следующим содержимым:

## Content of dictionary_keys.py
my_dict = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

Теперь используем метод get() для получения значения, связанного с ключом "name". Добавьте следующий код в файл dictionary_keys.py:

## Content of dictionary_keys.py
my_dict = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

name = my_dict.get("name")
print(name)

Сохраните файл и запустите скрипт с помощью следующей команды в терминале:

python dictionary_keys.py

Вы должны увидеть следующий вывод:

Alice

Метод get() успешно извлек значение, связанное с ключом "name".

Теперь попробуем получить значение, связанное с ключом, который не существует, например, "country". Измените файл dictionary_keys.py следующим образом:

## Content of dictionary_keys.py
my_dict = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

country = my_dict.get("country")
print(country)

Сохраните файл и запустите скрипт снова:

python dictionary_keys.py

Вывод будет следующим:

None

По умолчанию метод get() возвращает None, если ключ не существует. Это предотвращает возникновение исключения KeyError.

Вы также можете указать значение по умолчанию, которое будет возвращено, если ключ не существует. Измените файл dictionary_keys.py следующим образом:

## Content of dictionary_keys.py
my_dict = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

country = my_dict.get("country", "Unknown")
print(country)

Сохраните файл и запустите скрипт:

python dictionary_keys.py

Вывод будет следующим:

Unknown

В этом случае, так как ключ "country" не существует в словаре, метод get() вернул указанное нами значение по умолчанию "Unknown".

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

Резюме

В этом практическом занятии (лабораторной работе) вы начали с изучения того, как получить доступ к ключам словаря в Python. Вы научились создавать словарь и использовать метод .keys() для получения объекта представления (view object), содержащего ключи словаря.

Затем вы узнали, как преобразовать этот объект представления в список с помощью функции list(), что позволяет перебирать ключи и выполнять операции над ними, например, выводить каждый ключ по отдельности.