Форум сайта python.su
Доброго времени суток.
Собственно что есть. 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'}]
Отредактировано KsenZ (Апрель 7, 2018 08:59:55)
Офлайн
>>> a = [{"name": "site.ru", "id": 1}, {"name": "open.site.ru", "id": 2}, {"name": "close.site.ru", "id": 3}] >>> d = [{"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"}] >>> l = [i['name'] for i in a] >>> [i for i in d if i['name'] in l] [{'name': 'site.ru', 'ip': '1.1.1.1'}, {'name': 'open.site.ru', 'ip': '1.1.1.2'}] >>> [i for i in d if not i['name'] in l] [{'name': 'test-test.site.ru', 'ip': '1.1.1.1'}] >>>
Офлайн
Спасибо, то, что нужно
Офлайн