Как удалить ключ из словаря?
Создал словарь аа таким образом:
aa = {}
После чего добавил в него ключ, вот так:
aa['category', 'title:викенд'] = {}
В результате, при выводе словаря получаю:
{('category', 'title:викенд'): {}}
Какие есть способы удалить этот ключ из словаря aa, чтобы в результате я получил словарь без этого ключа?
Пытался удалить с помощью del products['category', f'title:викенд'], также c помощью products.pop['category', f'title:викенд'], но получал ошибки.
Ответы (2 шт):
Вариант 1:
In [230]: products = {}
In [231]: products['category', 'title:викенд'] = {}
In [232]: del products[('category', f'title:викенд')]
In [233]: products
Out[233]: {}
Вариант 2:
In [234]: products = {}
In [235]: products['category', 'title:викенд'] = {}
In [236]: products
Out[236]: {('category', 'title:викенд'): {}}
In [237]: _ = products.pop(('category', f'title:викенд'))
In [238]: products
Out[238]: {}
Если хотите разобраться почему так происходит:
In [239]: x = 'category', 'title:викенд'
In [240]: type(x)
Out[240]: tuple
In [241]: print(x)
('category', 'title:викенд')
Т.е. если написать несколько значений через запятую, не указывая явно тип и без скобок, то получим кортеж (tuple).
А в чём проблема?
У вас же в словаре только 1 элемент, у которого ключ ('category', 'title:викенд')
Значит и удалить вы его можете так:
del aa['category', 'title:викенд']
или так:
aa.pop(('category', 'title:викенд'))
или вы хотели кодом
aa['category', 'title:викенд'] = {}
создать 2 элемента с ключами 'category' и 'title:викенд'?
тогда это скорее так должно было бы выглядеть:
aa = {'category': {}, 'title:викенд': {}}
del aa['category']