所有,谢谢你的意见。对此,我真的非常感激。不幸的是,我意识到我目前提出问题的方式是完全无效的。d2 中的键对应于子网掩码,它们并不都是唯一的,所以我构造它的方式甚至不是一个有效的字典。
经过一番大惊小怪,我想出了一个可行的解决方案:
p = 0
sysNames = ['R3','R2','R1']
d1 = OrderedDict([('200.200.200.2','R3'),('200.200.200.1','R2'),('172.172.172.1','R2'),('172.172.172.100','R1'),('192.168.1.151','R1')])
oid1 = '1.3.6.1.2.1.4.20.1.3.200.200.200.2'
oid2 = '1.3.6.1.2.1.4.20.1.3.200.200.200.1'
oid3 = '1.3.6.1.2.1.4.20.1.3.172.172.172.1'
oid4 = '1.3.6.1.2.1.4.20.1.3.172.172.172.100'
oid5 = '1.3.6.1.2.1.4.20.1.3.192.168.1.151'
d2 = {oid1:'255.255.255.0',oid2:'255.255.255.0',oid3:'255.255.255.0',oid4:'255.255.255.0',oid5:'255.255.255.0'}
d1keys = list(d1.keys())
d1values = list(d1.values())
maskOid = '1.3.6.1.2.1.4.20.1.3.'
d3 = {}
for i in range(len(sysNames)):
ipMaskList = list()
numInterfaces = d1values.count(sysNames[i])
for dummy in range(numInterfaces):
ipMaskList.append({d1keys[p]:d2.get(maskOid+d1keys[p])})
p += 1
d3[sysNames[i]] = ipMaskList
作为典型,我确信这是一种非常低效且令人费解的方式来实现我的目标。我绝对不是一个伟大的程序员,当事情正常运行时我很高兴。
再次感谢你们的帮助,如果有人想发布更有效的解决方案,请随时:)