У меня есть список словарей, которые я получаю после вызова веб-службы,
listA = [{'name':'foo', 'val':'x'},
{'name':'bar', 'val':'1'},
{'name':'alice','val':'2'}]
Мне нужно сравнить результаты предыдущего звонка с сервисом и вытащить изменения. Поэтому при следующем звонке я могу получить:
listB = [{'name':'foo', 'val':'y'},
{'name':'bar', 'val':'1'},
{'name':'eve','val':'z'}]
Порядок не гарантируется, а также длина списка. Имена не изменятся. Фактические данные имеют еще несколько ключей, но меня интересует только «val».
Я пытаюсь найти способ вернуть список имен, значения которых менялись между вызовами только для имен, которые есть в обоих списках.
changed = ['foo'] # or [{'name':'foo'}]