Сравнить список и ключи словаря
Есть список - ['name1','name2','name3','name4','name5']
Есть словарь -
{
'name1':{'1':'2'},
'name2':{'1':'2'},
'name3':{'1':'2'},
'name4':{'1':'2'},
'name5':{'1':'2'},
'name6':{'1':'2'}
}
Необходимо, чтобы в третью переменную записывался элемент словаря {'name6':{'1':'2'}...}, в том случае, если ключа словаря нет в списке. Ни список, ни словарь не отсортирован, поэтому проходится надо каждый ключ словарь по всем элементам списка.
Пробовала перебирать список и словарь вложенными циклами, но он выдает ошибку
TypeError: 'set' object is not subscriptable,
поэтому ищу возможность. Нужен словарь такого вида, так как потом он записывается в json.
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
Не совсем понятно, как вы пробовали - код в вопросе вы не привели. обычным перебором ключей по списку вполне себе решается задача:
l = ['name1','name2','name3','name4','name5']
d = {'name1':{'1':'2'},'name2':{'1':'2'},'name3':{'1':'2'},'name4':{'1':'2'},'name5':{'1':'2'},'name6':{'1':'2'}}
s = set(l) # если у вас в списке могут быть неуникальные значения
# иначе просто опустите эту строку и в строке ниже
# измените s на имя вашего списка.
res = {k:d[k] for k in d.keys() if k not in s}
res:
{'name6': {'1': '2'}}