词典列表差异

2024-09-28 22:07:59 发布

您现在位置:Python中文网/ 问答频道 /正文

需要输入查找2个字典列表的差异

例如,在下面的2个列表之间

master_list = {'UDP-MIB': ['udpOutDatagrams',
             'udpInDatagrams'],
 'VRRP-MIB': ['vrrpNodeVersion', 'vrrpNotificationCntl']}

found_list = {'UDP-MIB': ['udpLocalAddress',
             'udpHCOutDatagrams',
             'udpNoPorts'],
 'VRRP-MIB': ['vrrpNodeVersion', 'vrrpNotificationCntl']}

difflib或jsondiff有帮助吗


Tags: master列表字典差异listudpmibfound
1条回答
网友
1楼 · 发布于 2024-09-28 22:07:59

使用^{}

import dictdiffer
master_list = {'UDP-MIB': ['udpOutDatagrams', 'udpInDatagrams'],
               'VRRP-MIB': ['vrrpNodeVersion', 'vrrpNotificationCntl']}

found_list = {'UDP-MIB': ['udpLocalAddress', 'udpHCOutDatagrams', 'udpNoPorts'],
              'VRRP-MIB': ['vrrpNodeVersion', 'vrrpNotificationCntl']}

for diff in list(dictdiffer.diff(master_list, found_list)):
    print(diff)

输出

('change', ['UDP-MIB', 0], ('udpOutDatagrams', 'udpLocalAddress'))
('change', ['UDP-MIB', 1], ('udpInDatagrams', 'udpHCOutDatagrams'))
('add', 'UDP-MIB', [(2, 'udpNoPorts')])

注意:

A diff is a tuple with the type of change, the changed value, and the path to the entry.

相关问题 更多 >