是否有更新字典并将该字典附加到列表而不导致重复的正确方法。这是与 netmiko 一起使用的,我的目标是让它变得有点动态和灵活,尤其是在命名方案中。
#!/usr/bin/python
import re
hosts_info = []
host = {
'device_type': 'cisco_ios',
'ip': 'co-acc-sw',
'username': 'cisco',
'password': 'notapassword',
'secret': 'mrsecret'
}
for x in range(0, 4):
if x < 2:
host.update({"ip": "core-switch" + str(x)})
elif x > 2:
host.update({"ip": "access-switch" + str(x - 1)})
hosts_info.append(host)
print(hosts_info)
当前输出为:
[{'device_type': 'cisco_ios', 'ip': 'access-switch2', 'username': 'cisco', 'password': 'notapassword', 'secret': 'mrsecret'},
{'device_type': 'cisco_ios', 'ip': 'access-switch2', 'username': 'cisco', 'password': 'notapassword', 'secret': 'mrsecret'},
{'device_type': 'cisco_ios', 'ip': 'access-switch2', 'username': 'cisco', 'password': 'notapassword', 'secret': 'mrsecret'},
{'device_type': 'cisco_ios', 'ip': 'access-switch2', 'username': 'cisco', 'password': 'notapassword', 'secret': 'mrsecret'}]
我试图让它看起来像这样:
[{'device_type': 'cisco_ios', 'ip': 'core-switch1', 'username': 'cisco', 'password': 'notapassword', 'secret': 'mrsecret'},
{'device_type': 'cisco_ios', 'ip': 'core-switch2', 'username': 'cisco', 'password': 'notapassword', 'secret': 'mrsecret'},
{'device_type': 'cisco_ios', 'ip': 'access-switch1', 'username': 'cisco', 'password': 'notapassword', 'secret': 'mrsecret'},
{'device_type': 'cisco_ios', 'ip': 'access-switch2', 'username': 'cisco', 'password': 'notapassword', 'secret': 'mrsecret'}]
如果我创建单独的字典并将它们添加到单独的 if 语句中,我可以让它工作,只是想知道是否有更好的方法来做到这一点?谢谢。