Понимание проверки типов в словарях
На этом этапе мы рассмотрим важность проверки типов в словарях (dictionaries) на Python. Словарь представляет собой гибкую структуру данных, которая может хранить пары ключ-значение. Однако, чтобы обеспечить целостность и надежность вашего кода, важно понимать, как проверять типы ключей и значений, хранящихся в словаре.
В Python словари определяются с использованием фигурных скобок {}
. Каждый элемент в словаре состоит из ключа и соответствующего значения, разделенных двоеточием :
.
Начнем с создания простого словаря:
## Create a dictionary
my_dict = {
"name": "Alice",
"age": 30,
"city": "New York"
}
print(my_dict)
Сохраните приведенный выше код в файле с именем type_checking.py
в директории ~/project
. Вы можете использовать редактор VS Code для создания и редактирования этого файла.
Теперь выполните скрипт, используя следующую команду в терминале:
python ~/project/type_checking.py
Вы должны увидеть следующий вывод:
{'name': 'Alice', 'age': 30, 'city': 'New York'}
В этом словаре ключи являются строками ("name"
, "age"
, "city"
), а значения - это строка ("Alice"
), целое число (30
) и еще одна строка ("New York"
).
Проверка типов становится важной, когда вы хотите убедиться, что данные, хранящиеся в вашем словаре, соответствуют вашим ожиданиям. Например, вы можете хотеть проверить, что возраст всегда является целым числом или что имя всегда является строкой.
Рассмотрим сценарий, когда вы хотите добавить новую пару ключ-значение в словарь, но при этом убедиться, что значение имеет определенный тип.
Откройте файл type_checking.py
в VS Code и измените его следующим образом:
## Create a dictionary
my_dict = {
"name": "Alice",
"age": 30,
"city": "New York"
}
## Function to add a key-value pair with type checking
def add_item(dictionary, key, value, expected_type):
if isinstance(value, expected_type):
dictionary[key] = value
print(f"Added {key}: {value} to the dictionary.")
else:
print(f"Error: {key} must be of type {expected_type.__name__}.")
## Example usage
add_item(my_dict, "occupation", "Engineer", str)
add_item(my_dict, "salary", 75000, int)
add_item(my_dict, "is_active", True, bool)
add_item(my_dict, "height", "5.8", float) ## Intentionally incorrect type
print(my_dict)
В этом коде мы определяем функцию add_item
, которая принимает словарь, ключ, значение и ожидаемый тип в качестве входных параметров. Функция использует функцию isinstance()
для проверки, является ли значение ожидаемого типа. Если это так, пара ключ-значение добавляется в словарь. В противном случае выводится сообщение об ошибке.
Выполните скрипт еще раз:
python ~/project/type_checking.py
Вы должны увидеть следующий вывод:
Added occupation: Engineer to the dictionary.
Added salary: 75000 to the dictionary.
Added is_active: True to the dictionary.
Error: height must be of type float.
{'name': 'Alice', 'age': 30, 'city': 'New York', 'occupation': 'Engineer', 'salary': 75000, 'is_active': True}
Как вы можете видеть, функция add_item
успешно добавила пары ключ-значение "occupation", "salary" и "is_active" в словарь, так как их значения соответствовали ожидаемым типам. Однако, для "height" была выведена ошибка, потому что предоставленное значение ("5.8") является строкой, в то время как ожидаемый тип был float
.
Этот пример демонстрирует базовую концепцию проверки типов в словарях. В следующих шагах мы рассмотрим более продвинутые техники обеспечения безопасности типов в вашем коде на Python.