Как сравнить правильно два словаря, чтобы возвращаемые данные были в одном списке?
Есть два словаря, в которых хранится id товара (ключ) и его наименование (значение). Вот пример:
dict_old = {
'R1': 'клавиатура',
'R2': 'компьютерная мышь',
'R3': 'наушники',
'R4': 'пульт',
'R5': 'телевизор',
'R6': 'микрофон',
}
dict_new = {
'L2': 'пылесос',
'R6': 'микрофон',
'R3': 'наушники',
'R5': 'телевизор',
'L1': 'телефон',
'L3': 'приставка',
}
Нужно, чтобы происходило сравнение этих двух словарей по ключу. То есть, как я это представляю: 1 словарь - это старый словарь, а 2 словарь - это новый словарь. И если во 2 словаре есть новый ключ (id), которого нет в 1 словаре, то надо чтобы в консоль выводилось значение этих ключей (наименование) в списке.
Пример:
['пылесос', 'телефон', 'приставка']
Подскажите пожалуйста, как это можно реализовать
Ответы (3 шт):
Ну есть способ втупую. Проходим по второму словарю и чекам, есть ли ключ в первом. Я и принчу, по можно аппендить в список и получить, то что вам нужно.
for k in dict_new:
if k in dict_old:
print(dict_new[k])
ну судя по всему вам нужно просто пройтись по значениям:
res = [x for x in dict_new.values() if x not in dict_old.values()]
res:
['пылесос', 'телефон', 'приставка']
Ещё можно через вычитание множеств ключей:
print([dict_new[x] for x in set(dict_new) - set(dict_old)])
# ['пылесос', 'телефон', 'приставка']