Питон удалить элемент словаря

29. Методы словарей и функция len() в Python

В уроке 7.5. разобрались с внутренним устройством словарей и научились их сортировать. Вы уже неплохо разбираетесь в методах списков и знаете пару основных методов словарей. Давайте углубим знания и познакомимся с оставшимися основными методами словарей и общей для всех итерируемых объектов функцией len() .

Методы словарей в Python

Если вы забыли, как создаются словари, добавляются элементы и как к ним обращаются в Python, вернитесь к уроку 7.1. на пару секунд, чтобы освежить знания. Для начала создадим словарь:

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

Так же удалить элемент можно при помощи метода pop() , который удаляет ключ и возвращает значение:

Если ключа не существует, то будет выброшено исключения KeyError . Про исключения поговорим в уроке 10.5. Метод pop() имеет второй необязательный параметр, который будет возвращаться, если ключа не существует. Например, выведем слово Empty , если такого ключа нет:

На метод pop() похож метод get() , который просто возвращает значение элемента по указанному ключу или None , если такого ключа не существует. В отличие от метода pop() , метод get() не удаляет элемент и не выбрасывает исключения, если ключ отсутствует. Во второй необязательный параметр метода get() можно указать возвращаемое значение, в случае отсутствия ключа, вместо стандартного значения None .

numbers = 
numbers.get('Five', 'Empty') # => Empty

Есть метод popitem() , который удаляет последний элемент в словаре и возвращает кортеж из двух элементов: ключа и значения:

Вернемся к ключевому слову del . При помощи его можно удалить не только ключ, но и весь словарь.

Не путайте понятия «удалить» и «очистить». После удаления словаря и попытке к нему обратиться (в примере выше, напечатать его) поднимется исключение NameError (поговорим о них позднее).

Чтобы очистит словарь, то есть удалить все элементы в нем, используйте метод clear() .

Читайте также:  Алгоритм пузырьковой сортировки питон

Помните, в уроке 2.3. про типы данных и переменные мы говорили, что при присваивании одной переменной другой, копируется не значение, а ссылка. То есть если вы хотите создать новый словарь и скопировать элементы из старого таким образом:

numbers =

a = numbers
a[‘One’] = 5

numbers # =>

При изменении элементов нового словаря, вы будете менять на самом деле элементы старого словаря. Чтобы такого не происходило, используйте метод copy() :

Иногда из имеющегося итерируемого объекта, например, кортежа или списка, вам необходимо сделать словарь. Это можно сделать при помощи метода fromkeys() , который принимает два параметра: итерируемый объект (например, кортеж) и необязательный параметр, который является значением по умолчанию для каждого ключа:

name = (‘Иванов’, ‘Петров’, ‘Сидоров’)
age = 30
dict_name = dict.fromkeys(name, age)
dict_name # =>

С методом setdefault() вы уже познакомились в уроке 7.1, поэтому можете вернуться, чтобы его вспомнить.

Для обновления словаря, то есть добавления новых элементов и перезаписи уже имеющихся ключей, существует метод update() , который не возвращает новый словарь, а перезаписывает тот, к которому применен:

numbers =
numbers_new =
numbers.update(numbers_new) # => None
numbers # =>

Функция len()

До этого момента мы ни разу не говорили про функцию len() , которая возвращает количество элементов в итерируемом объекте (строка, список, словарь и т.д.):

# словарь
d =
len(d) # => 4

# строка
s = "Hello"
len(s) # => 5

Как вариант (не самый лучший, конечно), функцию len() можно использовать в конструкции for для перебора элементов:

s = "Hello"
for i in range(len(s)):
print(s[i])

В этом уроке мы познакомились с оставшимися, ранее не затронутыми, методами словарей в Python и впервые узнали о функции len() для подсчета количества элементов в итерируемых объектах.

Источник

Как удалить элемент из словаря 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

Источник

Удаление элемента и ключа из словаря в 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.

Источник

Оцените статью