Словарь в Python — это встроенная структура данных, которая позволяет хранить информацию в виде пар «ключ-значение». Каждый ключ в словаре уникален и указывает на соответствующее значение. Удаление ключа — одна из наиболее часто выполняемых операций при работе со словарями в Python.
- Регулярное удаление ключа в словаре
- Метод 1: использование метода dict.pop (key, default)
- Метод 2: использование dict.get (key) с методом del
- Метод-3: использование метода dict.setdefault (key)
- Метод 4: использование блока try-Exception
- Метод 5: использование словаря
Регулярное удаление ключа в словаре
В Python мы можем удалить ключ из словаря с помощью ключевого слова del, за которым следует имя словаря и ключ в квадратных скобках. Например, если у нас есть словарь с информацией о достопримечательностях США, мы можем удалить ключ, связанный с определённой достопримечательностью.
us_landmarks = {
'Statue of Liberty': 'New York',
'Mount Rushmore': 'South Dakota',
'Golden Gate Bridge': 'California',
'Grand Canyon': 'Arizona',
'White House': 'Washington, D.C.'
}
del us_landmarks['White House']
Приведённый выше код удалит из словаря ключевую пару «Белый дом» и связанное с ней значение.
Однако если мы попытаемся удалить ключ, которого нет в словаре, возникнет ошибка KeyError. Давайте рассмотрим пример:
del us_landmarks['Lincoln Memorial']
Выход:
Traceback(most recent call last):
File "C:\Users\USER\PycharmProjects\pythonProject\TS\main.py", line 10, in
del us_landmarks['Lincoln Memorial']
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
KeyError: 'Lincoln Memorial'

Существует несколько различных способов безопасного удаления ключей из словаря Python без каких-либо ошибок.
Метод 1: использование метода dict.pop (key, default)
Метод pop() в Python, используемый для класса dict, позволяет удалить ключ из словаря и вернуть его значение. Если во время работы метода pop() предоставить второй аргумент, то в случае отсутствия ключа в словаре будет возвращено указанное значение.
Рассмотрим пример. У нас есть словарь, который содержит информацию о количестве штатов в разных регионах США.
region_dict = {
'West': 13,
'Midwest': 12,
'South': 17,
'Northeast': 9
}
region_dict.pop('Midwest', None)
На выходе ничего не будет.

Примечание. Это справедливо только для ключа в словаре Python. Ключ, которого не существует, выдаст KeyError.
Метод 2: использование dict.get (key) с методом del
Один из способов избежать ошибки при удалении ключа из словаря в Python — предварительно проверить, существует ли этот ключ. Для этого можно использовать метод get(), который возвращает значение None, если ключ не найден. Это позволит избежать возможных проблем.
Предположим, у нас есть информация о продукте, где общая сумма вложений представлена в виде словаря Python.
product_dict = {
'Electronics': 10000,
'Clothing': 50000,
'Home Decor': 20000
}
del product_dict['Clothing']
Вывод для этого блока кода также будет пустым.

Примечание. Это справедливо только для ключа в словаре Python. Ключ, которого не существует, выдаст KeyError.
Метод-3: использование метода dict.setdefault (key)
Функция setdefault() в Python позволяет установить значение по умолчанию, если указанный ключ отсутствует в словаре. Однако мы также можем использовать эту функцию для безопасного удаления ключа.
Рассмотрим пример словаря на языке Python, который хранит количество заказов для различных категорий товаров на платформе электронной коммерции в США:
order_dict = {
'Electronics': 10000,
'Clothing': 50000,
'Home Decor': 20000,
'Books': 30000,
'Sports': 15000
}
if order_dict.setdefault('Books'):
del order_dict['Books']
Вывод для этого блока кода также будет пустым.

Примечание. Это справедливо только для ключа в словаре. Ключ, которого не существует, выдаст KeyError.
Метод 4: использование блока try-Exception
В языке программирования Python блок try-except служит для обработки исключений. Блок кода, который потенциально может вызвать ошибку, помещается внутрь блока try. Если ошибка всё же происходит, то код, который должен выполняться при её возникновении, находится в блоке except.
В этом примере у нас есть словарь, содержащий средние температуры некоторых крупных городов США, измеренные в градусах Фаренгейта.
temp_dict = {
'Los Angeles': 75.0,
'New York': 55.0,
'Chicago': 52.0,
'Houston': 70.0,
'Phoenix': 85.0
}
try:
del temp_dict['New York']
except KeyError:
pass
Вывод для этого блока кода также будет пустым.

Метод 5: использование словаря
В этом методе мы создадим новый словарь Python без определённых ключей, используя понимание словаря. Понимание словаря позволяет создать новый словарь на основе исходного, но без пары ключ-значение, если ключ отсутствует в словаре.
Например, у нас есть информация о факультете Гриффиндор из «Гарри Поттера»:
Houses = {
"Harry Potter": "Gryffindor",
"Ron Weasley": "Gryffindor",
"Hermione Granger": "Gryffindor",
"Albus Dumbledore": "Gryffindor"
}
students = {key: value for key, value in Houses.items()
if key != 'Albus Dumbledore'}
print('students in Gryffindor houses are: \n', students)
Вывод мы сможем увидеть, только если напечатаем второй словарь (студенты):
students in Gryffindor houses are:
{'Harry Potter': 'Gryffindor', 'Ron Weasley': 'Gryffindor', 'Hermione Granger': 'Gryffindor'}

Примечание: если мы дадим ключ, которого нет в первом словаре, то скопируется весь словарь.