簡體   English   中英

Python:迭代字典中的項目列表並分配變量

[英]Python: Iteration through a list of items in dictionary and assign variables

我正在嘗試遍歷字典並在此python腳本中將變量分配給字典中的關鍵項,但是變量並未按預期分配,以下是我正在使用的python腳本,它在幾種方法中嘗試過但無法破解它,任何幫助將不勝感激:

interfaces = {
'switch1':['Gi0/0/0', 'Gi0/0/0.12', 'Gi0/0/0.14', 'Gi0/0/0.100', 'Gi0/0/0.101', 'Gi0/0/0.102', 'Gi0/0/0.105', 'Gi0/0/0.106', 'Gi0/0/1', 'Gi0/0/3', 'Gi0/0/5'],
'switch2':['Gi0/0/0', 'Gi0/0/0.34', 'Gi0/0/0.100', 'Gi0/0/0.101', 'Gi0/0/0.102', 'Gi0/0/0.103', 'Gi0/0/0.105', 'Gi0/0/1'],
'switch3':['Te0/1/0', 'Te0/1/0.3246', 'Te0/1/2', 'Te0/1/3', 'Te0/1/4'],
'switch4':['Te0/1/0.3246', 'Te0/1/3', 'Te0/1/4', 'Te0/1/0'],
'nexus1':['Eth1/1', 'Eth1/2', 'Eth1/4', 'Eth1/5', 'Eth1/6', 'Eth1/49', 'Eth1/50'],
'nexus2':['Eth1/1', 'Eth1/2', 'Eth1/4', 'Eth1/5', 'Eth1/6', 'Eth1/49', 'Eth1/50'],
'switch5':['Gi0/0/0', 'Gi0/0/1', 'Gi0/0/1.99', 'Gi0/0/1.200', 'Gi0/0/1.210', 'Gi0/0/2', 'Gi0'],
'switch6':['Gi0/0/0', 'Gi0/0/1', 'Gi0/0/1.103 ', 'Gi0/0/1.200', 'Gi0/0/1.210', 'Gi0/0/2 ', 'Gi0'],
'switch7':['Gi0/0/0', 'Gi0/0/0.100 ', 'Gi0/0/1 ', 'Gi0/0/3 ', 'Te0/1/0 ', 'Te0/1/0.100', 'Te0/1/1 ', 'Te0/1/1.100', 'Te0/1/1.101', 'Te0/1/1.110'],
'switch8':['Gi0/0/0', 'Gi0/0/0.100', 'Gi0/0/1', 'Gi0/0/2 ', 'Gi0/0/3', 'Te0/1/0 ', 'Te0/1/0.100', 'Te0/1/1', 'Te0/1/1.100 ', 'Te0/1/1.101', 'Te0/1/1.110'],
'nexus3':['Eth1/1', 'Eth1/2', 'Eth1/3', 'Eth1/4', 'Eth1/5', 'Eth1/6', 'Eth1/7', 'Eth1/27', 'Eth1/29', 'Eth1/41'],
'nexus4':['Eth1/1', 'Eth1/2', 'Eth1/3', 'Eth1/4', 'Eth1/5', 'Eth1/6', 'Eth1/7', 'Eth1/8', 'Eth1/25', 'Eth1/26', 'Eth1/27', 'Eth1/28', 'Eth1/29']
}



for key, value in interfaces.items():

    if key == ('switch1' or 'switch2' or 'switch3' or 'switch4'or 'switch5' or 'switch6'):
        username = 'username'
        password = 'password'
        platform = 'cisco_xe'

    elif key == ('switch7' or 'switch8'):
        username = 'username1'
        password = 'password1'
        platform = 'cisco_xe'

    elif key == ('nexus1' or 'nexus2'):
        username = 'username2'
        password = 'password'
        platform = 'cisco_nxos'

    else:
        username = 'username3'
        password = 'password4'
        platform = 'cisco_nxos'

    print(key,username,password,platform)

電流輸出:

switch1 username password cisco_xe
switch2 username3 password4 cisco_nxos
switch3 username3 password4 cisco_nxos
switch4 username3 password4 cisco_nxos
nexus1 username2 password cisco_nxos
nexus2 username3 password4 cisco_nxos
switch5 username3 password4 cisco_nxos
switch6 username3 password4 cisco_nxos
switch7 username1 password1 cisco_xe
switch8 username3 password4 cisco_nxos
nexus3 username3 password4 cisco_nxos

預期產量:

switch1 username password cisco_xe
switch2 username password cisco_xe
switch3 username password cisco_xe
switch4 username password cisco_xe
nexus1 username2 password cisco_nxos
nexus2 username3 password4 cisco_nxos
switch5 username password cisco_xe
switch6 username password cisco_xe
switch7 username1 password1 cisco_xe
switch8 username1 password1 cisco_xe
nexus3 username3 password4 cisco_nxos
nexus4 username3 password4 cisco_nxos

嘗試這個:

for key, value in interfaces.items():

    if key in {'switch1', 'switch2', 'switch3', 'switch4', 'switch5', 'switch6'}:
        username = 'username'
        password = 'password'
        platform = 'cisco_xe'

    elif key in {'switch7', 'switch8'}:
        username = 'username1'
        password = 'password1'
        platform = 'cisco_xe'

    elif key in {'nexus1', 'nexus2'}:
        username = 'username2'
        password = 'password'
        platform = 'cisco_nxos'

    else:
        username = 'username3'
        password = 'password4'
        platform = 'cisco_nxos'

    print(key,username,password,platform)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM