【问题标题】:Python dictionary Loop Help needed需要 Python 字典循环帮助
【发布时间】:2019-12-20 22:33:32
【问题描述】:
cisco_ios_gig25_uplink = []



userName = 'admin'

passWord = 'cisco'

cisco_devices = {
'device_type': 'cisco_ios',
'username': userName,
'password': passWord,
'host': '',
}

dev1 = {'host': 'USSXXXX110A'}
dev2 = {'host': 'USSXXXX310A'}
dev3 = {'host': 'USSXXXX203C'}
dev4 = {'host': 'USSXXXX209B'}


for dev in cisco_devices.items():
    cisco_devices.update(dev1)
    cisco_ios_gig25_uplink.append(dict(cisco_devices))
    cisco_devices.update(dev2)
    cisco_ios_gig25_uplink.append(dict(cisco_devices))
    cisco_devices.update(dev3)
    cisco_ios_gig25_uplink.append(dict(cisco_devices))
    cisco_devices.update(dev4)
    cisco_ios_gig25_uplink.append(dict(cisco_devices))

当我运行这个 for 循环时,我得到以下结果:

[{'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco', 'host': 'USSXXXX110A'}, 
{'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco', 'host': 'USSXXXX310A'}, 
{'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco', 'host': 'USSXXXX203C'}, 
{'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco', 'host': 'USSXXXX209B'}, 
{'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco', 'host': 'USSXXXX110A'}, 
{'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco', 'host': 'USSXXXX310A'}, 
{'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco', 'host': 'USSXXXX203C'}, 
{'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco', 'host': 'USSXXXX209B'}, 
{'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco', 'host': 'USSXXXX110A'}, 
{'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco', 'host': 'USSXXXX310A'}, 
{'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco', 'host': 'USSXXXX203C'}, 
{'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco', 'host': 'USSXXXX209B'}, 
{'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco', 'host': 'USSXXXX110A'}, 
{'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco', 'host': 'USSXXXX310A'}, 
{'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco', 'host': 'USSXXXX203C'}, 
{'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco', 'host': 'USSXXXX209B'}]

所以我的问题是:为什么 python 循环它 4 次? 我只希望它显示如下 - 那我该怎么做?

[{'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco', 'host': 'USSXXXX110A'}, 
{'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco', 'host': 'USSXXXX310A'}, 
{'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco', 'host': 'USSXXXX203C'}, 
{'device_type': 'cisco_ios', 'username': 'admin', 'password': 'cisco', 'host': 'USSXXXX209B'}]

【问题讨论】:

  • 您的循环不会遍历dev1dev2dev3dev4。它循环遍历cisco_devices 内的字典条目。

标签: python dictionary for-loop


【解决方案1】:

您正在迭代 cisco_devices。如果你想迭代你拥有的不同开发者,请将它们放在一个数组中并循环它们。

试试这个:

cisco_ios_gig25_uplink = []



userName = 'admin'

passWord = 'cisco'

cisco_devices = {
'device_type': 'cisco_ios',
'username': userName,
'password': passWord,
'host': '',
}

dev1 = {'host': 'USSXXXX110A'}
dev2 = {'host': 'USSXXXX310A'}
dev3 = {'host': 'USSXXXX203C'}
dev4 = {'host': 'USSXXXX209B'}


for dev in [dev1, dev2, dev3, dev4]:
    cisco_devices.update(dev)
    cisco_ios_gig25_uplink.append(dict(cisco_devices))

print(cisco_ios_gig25_uplink)

【讨论】:

    猜你喜欢
    • 2015-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    • 2021-05-14
    相关资源
    最近更新 更多