Словарь в 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'}
Примечание: если мы дадим ключ, которого нет в первом словаре, то скопируется весь словарь.