Собственно что есть. 2 списка словарей
available_domains = [{"name": "site.ru", "id": 1}, {"name": "open.site.ru", "id": 2}, {"name": "close.site.ru", "id": 3}] domains = [{"name": "site.ru", "ip": "1.1.1.1"}, {"name": "open.site.ru", "ip": "1.1.1.2"}, {"name": "test-test.site.ru", "ip": "1.1.1.1"}]
Как я попробовал сделать:
available_domains = [{"name": "site.ru", "id": 1}, {"name": "open.site.ru", "id": 2}, {"name": "close.site.ru", "id": 3}] domains = [{"name": "site.ru", "ip": "1.1.1.1"}, {"name": "open.site.ru", "ip": "1.1.1.2"}, {"name": "test-test.site.ru", "ip": "1.1.1.1"}] update_domains = [] new_domains = [] for available_domain in available_domains: for domain in domains: if domain['name'] == available_domain['name']: update_domains.append(domain) else: new_domains.append(domain) print(update_domains) print('------------') print(new_domains)
[{'name': 'site.ru', 'ip': '1.1.1.1'}, {'name': 'open.site.ru', 'ip': '1.1.1.2'}]
------------
[{'name': 'open.site.ru', 'ip': '1.1.1.2'}, {'name': 'test-test.site.ru', 'ip': '1.1.1.1'}, {'name': 'site.ru', 'ip': '1.1.1.1'}, {'name': 'test-test.site.ru', 'ip': '1.1.1.1'}, {'name': 'site.ru', 'ip': '1.1.1.1'}, {'name': 'open.site.ru', 'ip': '1.1.1.2'}, {'name': 'test-test.site.ru', 'ip': '1.1.1.1'}]Ткните носом, где я не прав, и как это лучше реализовать.