Как сравнить два значения в словаре которые находятся в списке?

Имеется решение задачи по сравнению списка со словарями. Если хотя бы какое-то значение отличается, то все это дело записывается в новый список. lst1 и lst2 списки со словарями с данными. в lst3 добавляет значения с двух предыдущих если данные разнятся в lst1 и lst2

lst1 = [{'company_name': 'Djonna', 'id_company': '55663', 'city': 'Москва', 'count_review': '5'},
        {'company_name': 'Vbss', 'id_company': '663388', 'city': 'Москва', 'count_review': '8'},
        {'company_name': "Сберб", 'id_company': '32387', 'city': 'Москва', 'count_review': '240'}]

lst2 = [{'company_name': 'Djonna', 'id_company': '55663', 'city': 'Москва', 'count_review': '5'},
        {'company_name': 'Vbss', 'id_company': '663388', 'city': 'Москва', 'count_review': '5'},
        {'company_name': "Сберб", 'id_company': '32387', 'city': 'Москва', 'count_review': '240'}]
lst3 = [company for company in lst1 if company not in lst2]

Пытаюсь по аналогии с предыдущим сравнить значения в списках, но не до конца понимаю как это реализовать. Если count_review в lst1 > чем count_review в lst2 Может вы сталкивались с подобной задачей.


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

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

попробуйте так:

lst1 = [{'company_name': 'Djonna', 'id_company': '55663', 'city': 'Москва', 'count_review': '5'},
        {'company_name': 'Vbss', 'id_company': '663388', 'city': 'Москва', 'count_review': '8'},
        {'company_name': "Сберб", 'id_company': '32387', 'city': 'Москва', 'count_review': '240'}]

lst2 = [{'company_name': 'Djonna', 'id_company': '55663', 'city': 'Москва', 'count_review': '5'},
        {'company_name': 'Vbss', 'id_company': '663388', 'city': 'Москва', 'count_review': '5'},
        {'company_name': "Сберб", 'id_company': '32387', 'city': 'Москва', 'count_review': '240'}]

lst3 = []
for el1, el2 in zip(lst1, lst2):
    if int(el1['count_review']) > int(el2['count_review']):
        lst3.append(el1)

print(lst3)
→ Ссылка