Как удалить ключ из словаря?

Создал словарь аа таким образом:

aa = {}

После чего добавил в него ключ, вот так:

aa['category', 'title:викенд'] = {}

В результате, при выводе словаря получаю:

{('category', 'title:викенд'): {}}

Какие есть способы удалить этот ключ из словаря aa, чтобы в результате я получил словарь без этого ключа?

Пытался удалить с помощью del products['category', f'title:викенд'], также c помощью products.pop['category', f'title:викенд'], но получал ошибки.


Ответы (2 шт):

Автор решения: MaxU

Вариант 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).

→ Ссылка
Автор решения: Zhihar

А в чём проблема?

У вас же в словаре только 1 элемент, у которого ключ ('category', 'title:викенд')

Значит и удалить вы его можете так:

del aa['category', 'title:викенд']

или так:

aa.pop(('category', 'title:викенд'))

или вы хотели кодом

aa['category', 'title:викенд'] = {}

создать 2 элемента с ключами 'category' и 'title:викенд'?

тогда это скорее так должно было бы выглядеть:

aa = {'category': {}, 'title:викенд': {}}

del aa['category']
→ Ссылка