繁体   English   中英

返回两个字典的差异

[英]Return the difference of two dictionaries

我想要做的是返回两个字典之间的键值对差异。

这段简单的代码可以解决问题:

remaining_macs = xlsx_macs.items() - xmc_macs.items()

但是是否返回一个如下所示的集合,而不是我想要的键值字典对?

{('70:B5:E8:C5:06:6B', 'Staff-Group'), ('34:9F:7B:56:53:C0', 'Printer-Group'), ('74:BF:C0:DE:7E:74', 'Printer-Group'), ('D4:3D:7E:BB:49:C4', 'Staff-Group'), ('8C:8C:AA:B5:1D:D4', 'Staff-Group')}

这是字典的原始格式:

xlsx_macs:

{'8C:8C:AA:B5:1D:D4': 'Staff-Group', '70:B5:E8:C5:06:6B': 'Staff-Group', 'D4:3D:7E:BB:49:C4': 'Staff-Group', '34:9F:7B:56:06:23': 'Printer-Group', '34:9F:7B:56:53:C0': 'Printer-Group', '74:BF:C0:DE:7E:74': 'Printer-Group', 'BC:F3:10:E2:BF:40': 'Access Points', 'BC:F3:10:E2:C6:C0': 'Access Points', 'BC:F3:10:E2:CB:00': 'Access Points', '00:13:5E:8D:19:EE': 'VoIP Phones', '44:47:CC:DF:75:AB': 'CCTV-Group', '00:08:5D:75:D1:BB': 'Voice-Group', '00:08:5D:75:D1:A5': 'Voice-Group', '00:08:5D:57:17:30': 'Voice-Group', ...}

xmc_macs:

{'00:0A:83:02:35:8E': 'Salto-Group', '00:0A:83:02:3D:7D': 'Salto-Group', '00:0A:83:02:3D:AE': 'Salto-Group', '00:0A:83:02:40:C8': 'Salto-Group', '00:0A:83:02:40:C9': 'Salto-Group', '00:0A:83:02:40:D0': 'Salto-Group', '00:0A:83:02:40:DF': 'Salto-Group', '34:9F:7B:56:06:23': 'Printer-Group', 'BC:F3:10:E2:BF:40': 'Access Points', 'BC:F3:10:E2:C6:C0': 'Access Points', 'BC:F3:10:E2:CB:00': 'Access Points', 'BC:F3:10:E2:D1:00': 'Access Points', 'BC:F3:10:E2:D4:00': 'Access Points', 'BC:F3:10:E3:BD:40': 'Access Points', ...}

因此,我正在为 output 苦苦挣扎,我想将其保留为字典,或者寻找一些可以更好地完成工作的代码。

您可以将结果转换为字典:

remaining_macs = dict(xlsx_macs.items() - xmc_macs.items())

例子:

>>> dict({('70:B5:E8:C5:06:6B', 'Staff-Group'), ('34:9F:7B:56:53:C0', 'Printer-Group'), ('74:BF:C0:DE:7E:74', 'Printer-Group'), ('D4:3D:7E:BB:49:C4', 'Staff-Group'), ('8C:8C:AA:B5:1D:D4', 'Staff-Group')})
{'74:BF:C0:DE:7E:74': 'Printer-Group', 'D4:3D:7E:BB:49:C4': 'Staff-Group', '70:B5:E8:C5:06:6B': 'Staff-Group', '8C:8C:AA:B5:1D:D4': 'Staff-Group', '34:9F:7B:56:53:C0': 'Printer-Group'}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM