Del в питоне словарь

Удаление элемента и ключа из словаря в Python

В этой статье мы обсудим различные способы удаления элемента и ключа из словаря в Python.

Python Dictionary используется в различных практических приложениях, таких как повседневное программирование, веб-разработка и программирование AI/ML, а также в приложениях для обработки данных, что делает его полезным контейнером в целом.

Удаление ключа из словаря с помощью del

Ключевое слово Python del можно использовать для удаления ключа, присутствующего в словаре. Один недостаток, который можно учитывать при использовании этого, заключается в том, что он вызывает исключение, если ключ не найден, и, следовательно, необходимо обрабатывать отсутствие ключа.

Синтаксис для Python del() следующий.

Оператор del удаляет данный элемент из словаря. Если данный ключ отсутствует в словаре, он выдаст KeyError.

В приведенной выше программе мы удалили элемент с ключом «You» с помощью оператора del.

Давайте рассмотрим другой сценарий, в котором ключ не существует в словаре, а затем попробуем удалить элемент.

Итак, мы получили KeyError из-за ключа «Black Mirror», которого нет в словаре.

Удаление ключа с del и try/except

Мы можем использовать обработку механизма try/except, если ключ не найден, тогда мы перехватываем исключение и показываем пользователю истинную ошибку.

В приведенном выше коде мы написали код del внутри блока try, и если ключ не найден, он выдает исключение, и мы исключаем это исключение и отображаем истинную ошибку для пользователя.

Следует отметить, что выполнение программы не останавливалось; оно продолжается.

Как удалить ключ из словаря с помощью dict.pop()

Если ключ существует в словаре, то dict.pop() удаляет элемент с заданным ключом из словаря и возвращает его значение.

Если данный ключ не существует в словаре, он возвращает заданное значение по умолчанию. Если же данный ключ не существует, а значение No Default передано в pop(), то он выдаст ошибку KeyError.

Источник

Как удалить элемент из словаря Pythonа

Как удалить элемент из словаря Pythonа

  1. Операция del для удаления элемента словаря Python
  2. Функция dict.pop() для удаления элемента словаря Python
  3. Удаление нескольких элементов из словаря Python
  4. Эксплуатационные характеристики

Иногда ваш словарь Python содержит ключ или несколько ключей, которые вы хотите удалить. Вы можете сделать это несколькими различными способами.

Операция del для удаления элемента словаря Python

Один из подходов заключается в использовании встроенного заявления Python del .

>>> meal = 'fats': 10, 'proteins': 10, 'carbohydrates': 80> >>> del meal['fats'] >>> meal 'proteins': 10, 'carbohydrates': 80> 

Обратите внимание, что если вы пытаетесь удалить элемент по ключу, которого нет в словаре,
Python runtime бросит KeyError .

>>> meal = 'fats': 10, 'proteins': 10, 'carbohydrates': 80> >>> del meal['water'] Traceback (most recent call last):  File "", line 1, in module> KeyError: 'water' 

Функция dict.pop() для удаления элемента словаря Python

Другой подход заключается в использовании функции dict.pop() .
Положительная сторона этого метода заключается в том, что он позволяет указать
значение по умолчанию, которое нужно вернуть, если запрашиваемый ключ не существует.
в словаре.

>>> meal = 'fats': 10, 'proteins': 10, 'carbohydrates': 80> >>> meal.pop('water', 3000) 3000 >>> meal.pop('fats', 3000) 10 >>> meal 'proteins': 10, 'carbohydrates': 80> 

Обратите внимание, что если вы не укажете значение по умолчанию для возврата и запрошенное значение
ключа не существует, вы также получите ошибку во время выполнения, как del выше.

>>> meal = 'fats': 10, 'proteins': 10, 'carbohydrates': 80> >>> meal.pop('water') Traceback (most recent call last):  File "", line 1, in module> KeyError: 'water' 

Удаление нескольких элементов из словаря Python

Если необходимо удалить несколько элементов из словаря за один заход,
Python 3 предлагает удобный список понимания, который вы можете использовать для этой цели.

>>> meal = 'fats': 10, 'proteins': 10, 'carbohydrates': 80> >>> [meal.pop(key) for key in ['fats', 'proteins']] [10, 10] >>> meal 'carbohydrates': 80> 

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

>>> meal = 'fats': 10, 'proteins': 10, 'carbohydrates': 80> >>> [meal.pop(key, None) for key in ['water', 'sugars']] [None, None] >>> meal 'fats': 10, 'proteins': 10, 'carbohydrates': 80> 

Эксплуатационные характеристики

Использование del утверждения и dict.pop() имеют различные характеристики производительности.

>>> from timeit import timeit >>> timeit("meal = ; del meal['fats']") 0.12977536499965936 >>> timeit("meal = ; meal.pop('fats', None)") 0.21620816600079706 

Как следует из приведенных выше таймингов, оператор del почти в два раза быстрее.

Однако, dict.pop() со значением падения является более безопасным, так как это поможет Вам избежать ошибок во время выполнения.

Используйте первое, если Вы уверены, что ключи должны присутствовать в словаре, и предпочитаете второе.

Сопутствующая статья — Python Dictionary

Copyright © 2023. All right reserved

Источник

Читайте также:  Python requests get proxies
Оцените статью