Уведомления

Группа в Telegram: @pythonsu

#1 Май 31, 2017 20:58:04

Tramp
Зарегистрирован: 2017-05-31
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Не получается создать словарь

Добрый день!

Есть такой код:

access = {'FastEthernet0/12': 10,
'FastEthernet0/14': 11,
'FastEthernet0/16': 17,
'FastEthernet0/17': 150}

access_template = ['switchport mode access',
'switchport access vlan',
'switchport nonegotiate',
'spanning-tree portfast',
'spanning-tree bpduguard enable']

a = []
access_conf = {}
for port in access:
a.clear()
for conf in access_template:
if conf == 'switchport access vlan':
a.append(str(conf) + ' ' + str(access[port]))
else:
a.append(conf)
# access_conf.append(a)
access_conf[port] = (a)
print(access_conf)

Необходимо, чтобы
access_conf = {'FastEthernet0/12': ['switchport mode access', 'switchport access vlan 10', 'switchport nonegotiate', 'spanning-tree portfast', 'spanning-tree bpduguard enable'], 'FastEthernet0/14': ['switchport mode access', 'switchport access vlan 11', 'switchport nonegotiate', 'spanning-tree portfast', 'spanning-tree bpduguard enable'], 'FastEthernet0/16': ['switchport mode access', 'switchport access vlan 17', 'switchport nonegotiate', 'spanning-tree portfast', 'spanning-tree bpduguard enable'], 'FastEthernet0/17': ['switchport mode access', 'switchport access vlan 150', 'switchport nonegotiate', 'spanning-tree portfast', 'spanning-tree bpduguard enable']}
Но получается (и через append тоже)
{'FastEthernet0/12': ['switchport mode access', 'switchport access vlan 150', 'switchport nonegotiate', 'spanning-tree portfast', 'spanning-tree bpduguard enable'], 'FastEthernet0/14': ['switchport mode access', 'switchport access vlan 150', 'switchport nonegotiate', 'spanning-tree portfast', 'spanning-tree bpduguard enable'], 'FastEthernet0/16': ['switchport mode access', 'switchport access vlan 150', 'switchport nonegotiate', 'spanning-tree portfast', 'spanning-tree bpduguard enable'], 'FastEthernet0/17': ['switchport mode access', 'switchport access vlan 150', 'switchport nonegotiate', 'spanning-tree portfast', 'spanning-tree bpduguard enable']}

Python 3.6.1
Подскажите, что не так?

Отредактировано Tramp (Май 31, 2017 20:58:44)

Офлайн

#2 Май 31, 2017 21:27:36

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Не получается создать словарь

Дональд, вот возможное решение

 access = {'FastEthernet0/12': 10,
           'FastEthernet0/14': 11,
           'FastEthernet0/16': 17,
           'FastEthernet0/17': 150}
access_template = ['switchport mode access',
                   'switchport access vlan',
                   'switchport nonegotiate',
                   'spanning-tree portfast',
                   'spanning-tree bpduguard enable']
for port, value in access.items():
    access[port] = access_template.copy()
    access[port][1] += ' ' + str(value)
print(access)

Офлайн

#3 Июнь 1, 2017 10:48:50

Tramp
Зарегистрирован: 2017-05-31
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Не получается создать словарь

Спасибо! Как все просто оказалось!
Не подскажите, почему мой вариант не работает?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version