Словарь в Python — это встроенная структура данных, которая позволяет хранить информацию в виде пар «ключ-значение». Каждый ключ в словаре уникален и указывает на соответствующее значение. Удаление ключа — одна из наиболее часто выполняемых операций при работе со словарями в Python.

Содержание

Регулярное удаление ключа в словаре

В 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 без ошибок с помощью dict.pop()

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

Метод 2: использование dict.get (key) с методом del

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

Предположим, у нас есть информация о продукте, где общая сумма вложений представлена в виде словаря Python.

product_dict = {
    'Electronics': 10000,
    'Clothing': 50000,
    'Home Decor': 20000
}

del product_dict['Clothing']

Вывод для этого блока кода также будет пустым.

Метод 2: использование dict.get (key) с методом del

Примечание. Это справедливо только для ключа в словаре 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']

Вывод для этого блока кода также будет пустым.

Метод-3: использование метода dict.setdefault (key)

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

Вывод для этого блока кода также будет пустым.

Метод 4: использование блока try-Exception

Метод 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'}

Метод 5: использование словаря 

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

Добавить комментарий