Убрать значение из словаря python

Словари в Python

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

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

Как создать словарь

Чтобы создать словарь в Python, необходимо прописать элементы внутри фигурных скобок <> и разделить их запятыми.

В элементе содержится ключ и соответствующее значение, они записываются так: (ключ: значение) .

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

# пустой словарь my_dict = <> # словарь с ключами — целочисленными значениями my_dict = # словарь с ключами разных типов my_dict = # используем dict() my_dict = dict() # словарь из последовательности, где элементы являются парами my_dict = dict([(1,'яблоко'), (2,'мяч')])

Как вы увидели выше, мы можем создать словарь с помощью встроенной функции dict() .

Читайте также:  Html код иконки соцсетей

Как получить элементы из словаря

В отличие от других типов данных, где для доступа к элементам используется индексация, в словаре используются ключи. Они используются внутри квадратных скобок или в качестве аргумента метода get() .

При использовании квадратных скобок и отсутствии элемента в словаре вызывается ошибка KeyError. При использовании метода get() и отсутствии элемента возвращается None .

# get vs. [] для получения элементов my_dict = # Вывод: Jack print(my_dict['Имя']) # Вывод: 26 print(my_dict.get('Возраст')) # Попытка получить ключ, которого не существует, приводит к ошибке # Вывод: None print(my_dict.get('Адрес')) # KeyError print(my_dict['Адрес'])
Ваня
26
None
Traceback (most recent call last):
File "", line 15, in
print(my_dict['Адрес'])
KeyError: 'Адрес'

Как изменить или добавить элементы в словаре

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

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

# Изменение словаря my_dict = # обновляем значение my_dict['Возраст'] = 27 # Вывод: print(my_dict) # добавляем элемент my_dict['Адрес'] = 'Центр города' # Вывод: print(my_dict)

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

Удалить нужный элемент словаря по ключу можно с помощью метода pop() . Этот метод удаляет элемент с соответствующим ключом и возвращает значение.

Удалить произвольную пару (ключ, значение) можно с помощью метода popitem() . Очистить весь словарь за один раз можно с помощью метода clear() .

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

# создаем словарь squares = # удаляет определенный элемент, возвращает его значение # Вывод: 16 print(squares.pop(4)) # Вывод: print(squares) # удаляет произвольный элемент, возвращает (ключ, эзначение) # Вывод: (5, 25) print(squares.popitem()) # Вывод: print(squares) # удаляет все элементы squares.clear() # Вывод: <> print(squares) # удаляет весь словарь del squares # выдает ошибку print(squares)
16

(5, 25)

<>
Traceback (most recent call last):
File "", line 30, in
print(squares)
NameError: name 'squares' is not defined

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

В таблице ниже указаны доступные методы словарей. Некоторые из них мы уже использовали в примерах выше.

Удаляет все элементы из словаря

Возвращает неглубокую копию словаря

Возвращает словарь с ключами из seq и значениями, равными v (по умолчанию None )

Возвращает значение ключа key . Если key не существует, возвращает d (по умолчанию None )

Возвращает новый объект элементов словаря в формате (ключ, значение)

Возвращает новый объект с ключами словаря

Удаляет элемент с ключом key и возвращает его значение или d , если key не найден. Если d не было обозначено и key не найден, вызывает ошибку KeyError.

Удаляет и возвращает произвольную пару (ключ, значение) . Вызывае ошибку KeyError, если словарь пустой.

Если ключ key есть в словаре, возвращает соответствующее ему значение. Если нет, добавляет в словарь элемент с ключом key и значением d и возвращает d (по умолчанию None )

Обновляет словарь имеющимися парами ключ/значение из other , перезаписывая существующие ключи

Возвращает новый объект со значениями словаря

marks = <>.fromkeys(['математика', 'русский язык', 'физика'], 0) # Вывод: print(marks) for item in marks.items(): print(item) # Вывод: ['русский язык', 'математика', 'физика'] print(list(sorted(marks.keys())))

('математика', 0)
('русский язык', 0)
('физика', 0)
['русский язык', 'математика', 'физика']

Представление словарей

Представление словарей — элегантный и лаконичный способ создать новый словарь из итерируемого объекта.

Представление словарей состоит из выражения ключ: значение , за которым следует for , и всё это — внутри фигурных скобок <> .

Создадим словарь с парами чисел и их квадратов в качестве элементов:

То же самое можно сделать иначе, но так будет длинее:

squares = <> for x in range(6): squares[x] = x*x print(squares)

В представлении словарей выражений for и if опционально может быть больше.

Необязательное выражение if поможет отфильтровать элементы для создания нового словаря.

Давайте создадим словарь только с квадратами только нечетных чисел:

# Представление словарей с опциональным if odd_squares = print(odd_squares)

Другие операции со словарями

Проверка на вхождение в словарь

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

squares = # Вывод: True print(1 in squares) # Вывод: True print(2 not in squares) # Проверка на вхождение позволяет проверять только ключи, не значения # Вывод: False print(49 in squares)

Итерирование по словарю

Мы можем пройтись по всем ключам словаря, используя цикл for .

squares = for i in squares: print(squares[i])

Встроенные функции для словарей

Встроенные функции all() , any() , len() , cmp() , sorted() и т. д. часто используются со словарями для разных задач.

Возвращает True , если все ключи словаря = True (или если словарь пуст)

Возвращает True , если хотя бы один ключ словаря = True . Если словарь пуст, возвращает False .

Возвращает длину (количество элементов) словаря

Сравнивает элементы двух словарей (не работает в Python 3)

Возвращает новый список с отсортированными ключами словаря

# Встроенные функции для словарей squares = # Вывод: False print(all(squares)) # Вывод: True print(any(squares)) # Вывод: 6 print(len(squares)) # Вывод: [0, 1, 3, 5, 7, 9] print(sorted(squares))

Источник

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

В этой статье мы обсудим различные способы удаления элемента и ключа из словаря в 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.

Источник

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