Я пытаюсь взять список хостов с сетевой информацией и создать список уникальных подсетей со списком доменов, связанных с su bnet. Пример списка хостов, сокращенный до трех, но это может быть несколько сотен / тысяч элементов:
hosts = [{
'name': 'foo',
'subnet_address': '192.168.1.0',
'subnet_mask': '255.255.254.0',
'domain': 'foo.example.com'
}, {
'name': 'bar',
'subnet_address': '192.168.2.0',
'subnet_mask': '255.255.254.0',
'domain': 'bar.example.com'
}, {
'name': 'baz',
'subnet_address': '192.168.2.0',
'subnet_mask': '255.255.254.0',
'domain': 'foo.example.com'
}]
Вот такой вывод, который я пытаюсь получить, subnet_address
- это уникальный ключ, и я хочу создать список ассоциаций доменов для них:
[{
'subnet_address': '192.168.1.0',
'subnet_mask': '255.255.254.0',
'domains': [
'foo.example.com'
]
}, {
'subnet_address': '192.168.2.0',
'subnet_mask': '255.255.254.0',
'domains': [
'bar.example.com',
'foo.example.com'
]
}]
Я нашел вопросы об удалении дубликатов словарей из списка и вопросы о слиянии (обновлении) словарей, но пока не нашел ничего похожего на это. объединение дубликатов, но в то же время создание списка (набора) доменов, найденных в других местах в списке хостов.