Сравнить 2 списка по их id
У меня есть 2 списка
{'1114': '0.0', '1109': '0.0', '1242': '0.0', '1246': '0.0', '1105': '0.0', '1481': '0.0', '1343': '0.0', '1487': '0.0', '1239': '0.0', '1335': '0.0', '1488': '0.0', '1112': '0.0', '1240': '0.0', '48': '0.0', '1583': '0.0', '668': '0.0', '1241': '0.0', '1247': '0.0', '1271': '0.0', '662': '0.0', '1486': '0.0', '1485': '0.0', '1483': '0.0', '1595': '0.0', '1238': '0.0', '1593': '0.0', '1594': '0.0', '42': '0.0', '311': '0.0', '1198': '0.0', '1199': '0.0', '1197': '0.0', '41': '0.0', '38': '0.0', '40': '0.0', '291': '0.0', '310': '0.0', '766': '0.0', '667': '0.0', '1194': '0.0', '1116': '0.0', '312': '0.0', '306': '0.0', '1586': '0.0', '1341': '0.0', '1587': '0.0', '1123': '0.0', '1344': '0.0', '1258': '0.0', '1589': '0.0', '1590': '0.0', '1115': '0.0', '1108': '0.0', '1113': '0.0', '1111': '0.0', '1697': '0.0', '1191': '0.0', '1107': '0.0', '1122': '0.0', '1717': '0.0', '1718': '0.0', '1127': '0.0', '1596': '0.0', '318': '0.0', '1750': '0.0', '1748': '0.0', '1749': '0.0', '1747': '0.0', '333': '0.0', '332': '0.0', '670': '0.0', '330': '0.0'}
{'333': '0.0', '332': '0.0', '670': '0.0', '330': '0.0', '1114': '0.0', '1109': '0.0', '1242': '0.0', '1246': '0.0', '1105': '0.0', '1481': '0.0', '1343': '0.0', '1487': '0.0', '1239': '0.0', '1335': '0.0', '1488': '0.0', '1112': '0.0', '1240': '0.0', '48': '0.0', '1583': '0.0', '668': '0.0', '1241': '0.0', '1247': '0.0', '1271': '0.0', '662': '0.0', '1486': '0.0', '1485': '0.0', '1483': '0.0', '1595': '0.0', '1238': '0.0', '1593': '0.0', '1594': '0.0', '42': '0.0', '311': '0.0', '1198': '0.0', '1199': '0.0', '1197': '0.0', '41': '0.0', '38': '0.0', '40': '0.0', '291': '0.0', '310': '0.0', '766': '0.0', '667': '0.0', '1194': '0.0', '1116': '0.0', '312': '0.0', '306': '0.0', '1586': '0.0', '1341': '0.0', '1587': '0.0', '1123': '0.0', '1344': '0.0', '1258': '0.0', '1589': '0.0', '1590': '0.0', '1115': '0.0', '1108': '0.0', '1113': '0.0', '1111': '0.0', '1697': '0.0', '1191': '0.0', '1107': '0.0', '1122': '0.0', '1717': '0.0', '1718': '0.0', '1127': '0.0', '1596': '0.0', '318': '0.0', '1750': '0.0', '1748': '0.0', '1749': '0.0', '1747': '0.0'}
тут ключ и его значение,
в качестве ключа выступает уникальное значение - id.
Как можно сравнить эти два списка, и вывести только те "ключ: значение" которые отличаются.
То есть допустим id 1114 было 0.0 а стало 1.0, вывести
Было 0.0 стало 1.0
Ответы (1 шт):
Автор решения: A_Vaclav
→ Ссылка
a = {'1114': '0.0', '1109': '0.0', '1242': '0.0', '1246': '0.0', '1105': '0.0',
'1481': '0.0', '1343': '0.0', '1487': '0.0', '1239': '0.0', '1335': '0.0',
'1488': '0.0', '1112': '0.0', '1240': '0.0', '48': '0.0', '1583': '0.0',
'668': '0.0', '1241': '0.0', '1247': '0.0', '1271': '0.0', '662': '0.0',
'1486': '0.0', '1485': '0.0', '1483': '0.0', '1595': '0.0', '1238': '0.0',
'1593': '0.0', '1594': '0.0', '42': '0.0', '311': '0.0', '1198': '0.0',
'1199': '0.0', '1197': '0.0', '41': '0.0', '38': '0.0', '40': '0.0',
'291': '0.0', '310': '0.0', '766': '0.0', '667': '0.0', '1194': '0.0',
'1116': '0.0', '312': '0.0', '306': '0.0', '1586': '0.0', '1341': '0.0',
'1587': '0.0', '1123': '0.0', '1344': '0.0', '1258': '0.0', '1589': '0.0',
'1590': '0.0', '1115': '0.0', '1108': '0.0', '1113': '0.0', '1111': '0.0',
'1697': '0.0', '1191': '0.0', '1107': '0.0', '1122': '0.0', '1717': '0.0',
'1718': '0.0', '1127': '0.0', '1596': '0.0', '318': '0.0', '1750': '0.0',
'1748': '0.0', '1749': '0.0', '1747': '0.0', '333': '0.0', '332': '0.0',
'670': '0.0', '330': '0.0'}
b = {'333': '1.0', '332': '0.0', '670': '0.0', '330': '0.0', '1114': '0.0',
'1109': '0.0', '1242': '0.0', '1246': '0.0', '1105': '0.0', '1481': '0.0',
'1343': '0.0', '1487': '0.0', '1239': '0.0', '1335': '0.0', '1488': '0.0',
'1112': '0.0', '1240': '0.0', '48': '0.0', '1583': '0.0', '668': '0.0',
'1241': '0.0', '1247': '0.0', '1271': '0.0', '662': '0.0', '1486': '0.0',
'1485': '0.0', '1483': '0.0', '1595': '0.0', '1238': '0.0', '1593': '0.0',
'1594': '0.0', '42': '0.0', '311': '0.0', '1198': '0.0', '1199': '0.0',
'1197': '0.0', '41': '0.0', '38': '0.0', '40': '0.0', '291': '0.0',
'310': '0.0', '766': '0.0', '667': '0.0', '1194': '0.0', '1116': '0.0',
'312': '0.0', '306': '0.0', '1586': '0.0', '1341': '0.0', '1587': '0.0',
'1123': '0.0', '1344': '0.0', '1258': '0.0', '1589': '0.0', '1590': '0.0',
'1115': '0.0', '1108': '0.0', '1113': '0.0', '1111': '0.0', '1697': '0.0',
'1191': '0.0', '1107': '0.0', '1122': '0.0', '1717': '0.0', '1718': '0.0',
'1127': '0.0', '1596': '0.0', '318': '0.0', '1750': '0.0', '1748': '0.0',
'1749': '0.0', '1747': '0.0'}
#print(a['1114'], ' ', len(a)) проверил приведенный пример и длину "списков"
#print(b['1114'], ' ', len(b)) что-то нет отличий и это СЛОВАРИ!
#ВНИМАНИЕ! изменил в словаре b значение по ключу ['333'] на 1.0
result = {x: b[x] for x in a if a[x] != b[x]}
print(result)